Fixing initialisation sequence
Refactoring merge(), and renaming it to resolve_clauses()

Much better naming, cleaner implementation
Fixing initialization order in constructor
Clean up variable elimination