change API, move mul() and add() to points