Add Symbol#commutative? and refactor