implemented recursive call with fixed-length args