refactor, start impl physics