public boolean equals(Object obj) {
        if (obj == this) {
            return true;
        }
        if (!(obj instanceof ArrowNeedle)) {
            return false; 
        }
        if (!super.equals(obj)) {
            return false;
        }
        ArrowNeedle that = (ArrowNeedle) obj;
        if (this.isArrowAtTop != that.isArrowAtTop) {
            return false;
        }
        return true;