fixed validations and callbacks to correct order