+ huge code refactor
+ huge javadoc's