v0.2.0 completely refactored