Initial commit. Thinking about what interfaces will look like.