Homework 312

First drop - not 100% happy with the way bitmap caching turned out :-|