add queue structure and test case