add plumbing and docblocks