add domain classes and tests to them, refactor util class