Feature/refactor search