implemented full new and create functions