initial class definition
added cb argument on each method for async
cleanup incompatible old stuff
initial class definition