Changed the order between termination/body/step.
Removed body form, added prologue form, more work in step form.
Removed complicated type declarations.