[WIP] Implement Agent

**TODO**

***
*The commits in this branch will be cleaned up in time and likely stashed to a single coherent change-set.*