Constructor set to private, it isnt save to use it anyway.
One way to do things is to remove the static factory method and use object from contructor with call to ConcreteEntity.register() on its own or call register() from constructor. But the object that would be returned from constructor would be useless, so I wrapped it in static factory.
Untracking those .iml files.