scheme stuff written in 2009