supports custom initial solution