Implement solver & test