Finished development of initial version with unit tests