Migrating Agents to greener pastures

A re-envisioning of Agents

- no longer have to be .close()'d
- removed redundant methods
- cleaned up method parameters
- new impl 68 lines smaller :)