Changed the Queue implementation fully generic and pass by reference
still debugging enqueue