working NHibernate implementation