Refactored. switch arguments order naturally