add spec tests
bug fix: split define routine by class method and instance method
add development dependency
update descriptions