cleaner makefile using builtin rules.
better documentation