modify to introduce argument passing and value returning functionalities for subroutines