change queue to a generic data structure (which does not hold char*) only
list now use queue to hold its children (previously this was done using a variant of binary tree)
FIX IT : memory leak in tokenize()