now it uses standard notation and doesn't use left rotate