we also have to store the bearing
more implementation, more testing