can swap the function on the fly, improve orbit behaviour