implemented and tested create