Runnable

Like #97, but better.

Still to do:

- [x] Write tests.
- [x] Write documentation.
- [x] Remove Core module.