more classes from PipeGame, with some tweaking