added more tests and validations