Added another layer of abstraction.

Block based skills now have a different class to extend, which implements most of the logic.