finishing the large agree refactor