Added some comments.
Make sure default can be overriden.
Correctly do not export constructor when nil.
Cleanup.