REFACTORING: supporting a list of bytes

This will help fix the issues with IO.ungetc