improved tab-complete