complete function version except for substring and suffix