implements point based manipulation