adding my code. needs a lot of clean up, including fixing makefiles