new implementation for linked queue