Code refactoring
version bump
Merge branch 'release/0.4.0' into develop