This commit ensures that the compiler has to check every component against the groups they implement by explicitly annotating the appropriate interfaces.
This commit adds and passes context around to (almost) every function. This allows cancelling (almost) every function call globally.