@Override
    public boolean equals (Object vector) {
        try {
            Vector other = (Vector) vector;
            return (fuzzyEquals(getMagnitude(), other.getMagnitude()) && 
                    fuzzyEquals(getDirection(), other.getDirection()));
        }
        catch (ClassCastException e) {
            return false;
        }
    }