wrote whole project, need to test