Implement hsv primitive