improved explore()