v1.2.0

major rewriting