beginning to refactor anonymous inner classes out to nested implementations within their respective interfaces