solution to the fogcreek developer entry challenge