add some more unit tests, add some model validations