adding project2 v1 implementation