add all neede search funtion, but need to test