Adding the basic code. I still need to add a simple test runner but...