Split out code into classes and dynamically load Block types upon detection