use BasicObject for Batch to avoid namespace pollution