@Override
    public int compareTo(TimeEffect o) {

        if (this == o)
            return 0;

        if (this.nextExecution < o.nextExecution) return -1;   //'this' executes first.
        if (this.nextExecution > o.nextExecution) return 1;   //'this' executes second.
        return -1; //by default, with the same ordering.
    }