queue with basic implementations, add and remove