use marco to call subroutines