refactoring and exchange and queue methods are now passing