refactored para to take functions out of magic object
asserts added to para