Marked as sealed.
Only computing size of batch once.
Added some thoughts to the implementation.