change FunctionalQueue
FunctionalQueue