implement my own queue from extending queue, typescript makes inheritance easy,