switch to perspective.el, some cleanup