first commit for new branch. Overhauling Agent class