Version 2 of my Final Project, cleaner implementation