Finished Inital Version