fixed operator*, better type with normalize and operator* and added dot product