UPDATE: v0.3 - 99% refactoring