refactor create do not need to check existence first