Added documentation to some classes.
Changed the way abilities are triggered.
Changed the package organization a bit.
Remade the block.
Refactored a bunch of stuff.