migrated companion constructor
annotated public methods
reduced scope of empty set
added inline factory