Restructured a bit
Restructured a bit
More refactoring, improved encapsulation, made Contains() perform sanely