[UPDATE] IPOA-192 modularize lots of things to allow blocks to be moved around