Added merge capability, caching and test unit