Implemented swap & tests. Added few comments. Changed allocation registration to use const pointers