TODO:
domain objects interfaces
dao crud get n from x
basic validation