working on solver