refactor, complete domain model
modified hql