refactored design goals, added basic source and make