function addOptions(first, second) {
    var first = first.split('');
    var second = second.split('');
    var fin = first.slice(-1)[0];
    if (inc(c.consonants, fin)) fin = '';
    var penult = first.slice(-2)[0];
    var beg = second[0];
    var opt;
    var candra;
    if (fin == c.virama) { //  && inc(c.hal, beg)
        var vir = false;
        candra = false;
        if (fin == c.virama) {
            first.pop();
            fin = first.slice(-1)[0];
            penult = first.slice(-2)[0];
            vir = true;
        }
        else if (fin == c.candra) {
            first.pop();
            fin = first.slice(-1)[0];
            candra = true;
        }
        var opt = {type: 'cons', first: first, fin: fin, vir: vir, second: second, beg: beg, pen: penult};
        if (vir) opt.vir = true;
        if (candra) opt.candra = true;
        if (beg == c.oM) {
            opt.second.shift();
            opt.oM = true;
        }
    } else if ((inc(c.consonants, fin) || inc(c.allligas, fin)) && inc(c.allvowels, beg)) {
        opt = {type: 'vowel', first: first, fin: fin, second: second, beg: beg};
    } else if (fin == c.visarga) {
        first.pop();
        fin = u.last(first)[0];
        opt = {type: 'visarga', first: first, fin: fin, second: second, beg: beg};
    }
    return opt;
}
function addOptions(first, second) {
    var first = first.split('');
    var second = second.split('');
    var fin = first.slice(-1)[0];
    if (inc(c.consonants, fin)) fin = '';
    var penult = first.slice(-2)[0];
    var beg = second[0];
    var opt;
    var candra;
    if (fin == c.virama) { 
        var vir = false;
        candra = false;
        if (fin == c.virama) {
            first.pop();
            fin = first.slice(-1)[0];
            penult = first.slice(-2)[0];
            vir = true;
        }
        else if (fin == c.candra) {
            first.pop();
            fin = first.slice(-1)[0];
            candra = true;
        }
        var opt = {type: 'cons', first: first, fin: fin, vir: vir, second: second, beg: beg, pen: penult};
        if (vir) opt.vir = true;
        if (candra) opt.candra = true;
        if (beg == c.oM) {
            opt.second.shift();
            opt.oM = true;
        }
    } else if ((inc(c.consonants, fin) || inc(c.allligas, fin)) && inc(c.allvowels, beg)) {
        opt = {type: 'vowel', first: first, fin: fin, second: second, beg: beg};
    } else if (fin == c.visarga) {
        first.pop();
        fin = u.last(first)[0];
        opt = {type: 'visarga', first: first, fin: fin, second: second, beg: beg};
    }
    return opt;
}
function addOptions ( first , second ) { var first = first . split ( '' ) ; var second = second . split ( '' ) ; var fin = first . slice ( - 1 ) [ 0 ] ; if ( inc ( c . consonants , fin ) ) fin = '' ; var penult = first . slice ( - 2 ) [ 0 ] ; var beg = second [ 0 ] ; var opt ; var candra ; if ( fin == c . virama ) { //  && inc(c.hal, beg) var vir = false ; candra = false ; if ( fin == c . virama ) { first . pop ( ) ; fin = first . slice ( - 1 ) [ 0 ] ; penult = first . slice ( - 2 ) [ 0 ] ; vir = true ; } else if ( fin == c . candra ) { first . pop ( ) ; fin = first . slice ( - 1 ) [ 0 ] ; candra = true ; } var opt = { type : 'cons' , first : first , fin : fin , vir : vir , second : second , beg : beg , pen : penult } ; if ( vir ) opt . vir = true ; if ( candra ) opt . candra = true ; if ( beg == c . oM ) { opt . second . shift ( ) ; opt . oM = true ; } } else if ( ( inc ( c . consonants , fin ) || inc ( c . allligas , fin ) ) && inc ( c . allvowels , beg ) ) { opt = { type : 'vowel' , first : first , fin : fin , second : second , beg : beg } ; } else if ( fin == c . visarga ) { first . pop ( ) ; fin = u . last ( first ) [ 0 ] ; opt = { type : 'visarga' , first : first , fin : fin , second : second , beg : beg } ; } return opt ; }
============ ADD ========== TODO: will be completely rewritten:
============ ADD ========== TODO : will be completely rewritten :