added essential vector arithmetic