refactor 1  +solver