need build a abstract report object