Skeletal implementation

This is not enough to be what people call "walking skeleton", but it's
something we can build on.