improved search class