Some improvements.
Switched place between factory and constructor.