Runnable

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