now uses void
Added FiniteByteSource