Initial rough sketch of what the interface should look like.