big changes based on new knowledge, ready to release v0.2.1