First part of refactoring of IMU

ВНИМАНИЕ!!!
Я _не_ тестировал код в этом пуллреквесте. Его нужно либо протестировать перед вливанием в мастер либо дождаться, пока я напишу автоматические тесты.
В принципе, этот рефакторинг _не_должен_ изменить поведения программы в целом.