add a bunch of docstrings and fix listens.