moved solver implementations to separate files