Add perspective switching

fix #47