restore create method
keep 318 loc