add checkBalance method
add deferred module
refactor all modules, so they are created using create() method
add done() method to deferred module
add fail() method to deferred module
add documentation