fix #5 subfunctions & #205 recursive ci/cd