Implement solver