@mshamalainen's code also requires free orientation, so we might as well stick with that for now.