Add report REST support and split logic between interfaces and
implementation classes.
e