added proprty validation, cleaned up the exception messages a little