Added some validations and callbacks to users