report factory