implement v#rules, refactor
0.2.0