Finished initial version