A few tricky ideas to get your head around, but once I understood what I was doing I really got into this. There is a lot of richness balancing the various components. If you could figure out a broader game loop I think this could be spun out into a full game.