added distributivity rule