solver work in progress