First pass at compass implementation