All methods implemented except solve