~ pulling this one off the shelf ~
Solver — OmList