completely rewrote explorer