custom queue class