begin refactoring parsing logic to allow both a mutable and immutable cursor through the byte buffer