made validating/error handling on model better

added better promise support to validate as well