add queue structure implementation