impl auto completion and delegate