working on more elegant solutions
new version 0.0.3