Sketching out some basic functionality for a project I'm playing with. This is not an official library