public T getCurrent() {
        if(type == TIMED_SEQUENCE) {
            if(elapsed >= delay) {
                sequence.pollFirst();
                elapsed = 0;
            }
            return sequence.peekFirst();
        }
        else if(type == RANDOM_SEQUENCE) {
            int r = Application.get().getRNG().nextInt(sequence.size());
            T t = (T)sequence.toArray()[r];
            sequence.remove(t);
            return t;
        }
        else if(type == MANUAL_SEQUENCE) {
            return sequence.peekFirst();
        }
        
        return null;
    }