Refactored Arguments so that they are stored recursively under simulation, instead of under kernels.

Also wrote some test cases!