implemented and tested Queue