improvements

+ add some method
+ rename defineBlock => block