Fixed a bug in cross product, rewrote constructors