refactor track skipping, update search method