project1 implementation