API fiddling. 'Floating' was a great name but it conflicts with Prelude =(