refactor search to searchable concern