closes #8 - use report factory