refactoring out redundant classes where possible
hibernate dserialization must be supported