refactored and implemented create