IDataEntry refactoring: uses companion object as factory