Some docs.
Make the constructors private for factory class.