completion refactor
completion refactor