using bytelist instead of a linkedlist for a better performance