Create and validate user when post to create
Huge refactoring, going to split this commit in smaller chunks