cpsc478 scaffolding code