initial import from toysolver repository