added solver and test