Magnetohydrodynamic Object Oriented Numerical Simulation (MOONS)