APATH := $(realpath .)
 RPATH := $(subst $(wildcard ~/),,$(APATH))
 
-EXCLUDES := Makefile 
-ALL := $(wildcard *)
-FILES := $(filter-out $(EXCLUDES),$(ALL))
+FILES :=
+DOTFILES := bash* flexget vim*
 
-
-test:
-       echo $(APATH)
-       echo $(FILES);
-       echo $(RPATH)
-
-.PHONY: install $(FILES)
-install: $(FILES)
+.PHONY: install $(FILES) $(DOTFILES)
+install: $(FILES) $(DOTFILES)
 
 $(FILES): 
-       cp -r ~/.$@ $@
-       rm -r ~/.$@
+       @if [[ -f ~/$@ || -d ~/$@ ]]; then \
+         if [[ -d $@ ]]; then \
+           cp -r ~/$@/* $@; \
+         else \
+           cp -r ~/$@ $@; \
+         fi; \
+         rm -r ~/$@; \
+       fi; 
+       ln -sf $(RPATH)/$@ ~/.$@ 
+
+$(DOTFILES): 
+       @if [[ -f ~/.$@ || -d ~/.$@ ]]; then \
+         if [[ -d $@ ]]; then \
+           cp -r ~/.$@/* $@; \
+         else \
+           cp -r ~/.$@ $@; \
+         fi; \
+         rm -r ~/.$@; \
+       fi; 
        ln -sf $(RPATH)/$@ ~/.$@