First pass. Basic functionality.