adds  instead of what has to be done now
better code docs
use 'should.be.kind_of' consistently