some major changes, updated makefile