More robust error handling
- added some more error-handling
- set timestep based on periapse rather than semi-major axis