finish the initial version