add tab complete support