break out functions to various files for clarity; update make file and header file appropriately; add basic README