First order reformulation for IVPs

Still working on improving the tests, but apart from that, the code is ready to be reviewed!