split out physics behavior