start flushing out some implementation details