solver skeleton