Refactored interfaces. Cleaned up and broke the solver