Put Factory as inner classes of created class.

Added few comments and few fixes after Andrew comments.
Rename decorator to configurator.
Add few comments.