* reverted back ObjectPool and stuff
* added smart client
* created tests