Some refactoring, Added search suggestion
Clean up code following intructor's comments