full support for compass fix #38, fix #59, fix #58