refactored auto complete strategy functionality to be adhere more to the open close principles