splat checking more robust. still needs to handle optional args and keyword args.