solution skeleton