Fixes #2 - Initial core implementation.