Proper encapsulation
Object factory
Proper encapsulation + use internal factory interface
Version 0.3.0
Merge branch 'release/0.3.0' into develop