added FirstName constraint and further tests. Small code refactor