implements the idea of having different physics engines based on
different theories