return proper error codes. see: /usr/include/sysexits.h better makefile basically polishing everything, ready for a release.