some more work on commutation rules