Refactor with more tests. Added Collection implementation. Updated README