Initial skeleton, along with an example of how I would like the interface to work.