first version of create operation