refactor definition, make it clear, remove confused desgin;
remove definition.create()
update