seperation of domain layer, added nhibernate