diff --git a/src/functions.php b/src/functions.php
index 876282c76f73b4c64dbf67a3f14f3c3733406cbf..fda6ddb18835d1eaa2c36e7f5f5ce89e6163449d 100644
--- a/src/functions.php
+++ b/src/functions.php
@@ -10,22 +10,22 @@
 
 namespace Grifart\AssertFunction;
 
-function parameters(string ...$params): array
+function params(string ...$params): array
 {
 	return $params;
 }
 
-function optional(string $classType): string
+function nullable(string $classType): string
 {
 	return '?' . $classType;
 }
 
-function assertFunction(callable $function, array $parameters, ?string $expectedReturnType): void
+function assertSignature(callable $function, array $parameters, ?string $expectedReturnType): void
 {
 	// todo: call assert(__impl());
 	$reflection = new \ReflectionFunction($function);
 
-	// NUMBER PARAMETERS CHECK:
+	// NUMBER OF PARAMETERS CHECK:
 	$numberOfParameters = $reflection->getNumberOfParameters();
 	assert(
 		$numberOfParameters === count($parameters),
diff --git a/tests/fn.assertFunction.allOptional.phpt b/tests/fn.assertSignature.allOptional.phpt
similarity index 55%
rename from tests/fn.assertFunction.allOptional.phpt
rename to tests/fn.assertSignature.allOptional.phpt
index baed2d8ab08ac52b6b937b9e4efe113eb04bff84..9f845dcaafcf8c490ed32f98f37813d68012e398 100644
--- a/tests/fn.assertFunction.allOptional.phpt
+++ b/tests/fn.assertSignature.allOptional.phpt
@@ -2,31 +2,31 @@
 namespace MyTestNamespace;
 require __DIR__ . '/bootstrap.php';
 require __DIR__ . '/testClasses.php';
-use function Grifart\AssertFunction\{assertFunction, optional, parameters};
+use function Grifart\AssertFunction\{assertSignature, nullable, params};
 use Tester\Assert;
 
 $fn = function(?T1 $t1, ?T2 $t2): ?T3 {return new T3;};
-assertFunction($fn, parameters(optional(T1::class), optional(T2::class)), optional(T3::class));
+assertSignature($fn, params(nullable(T1::class), nullable(T2::class)), nullable(T3::class));
 
 // missing optional check
 Assert::exception(function () use ($fn) {
-	assertFunction($fn, parameters(T1::class, optional(T2::class)), optional(T3::class));
+	assertSignature($fn, params(T1::class, nullable(T2::class)), nullable(T3::class));
 }, \AssertionError::class /* todo: assert message */);
 
 Assert::exception(function () use ($fn) {
-	assertFunction($fn, parameters(optional(T1::class), T2::class), optional(T3::class));
+	assertSignature($fn, params(nullable(T1::class), T2::class), nullable(T3::class));
 }, \AssertionError::class /* todo: assert message */);
 
 Assert::exception(function () use ($fn) {
-	assertFunction($fn, parameters(optional(T1::class), optional(T2::class)), T3::class);
+	assertSignature($fn, params(nullable(T1::class), nullable(T2::class)), T3::class);
 }, \AssertionError::class /* todo: assert message */);
 
 // Wrong return type type
 Assert::exception(function () use ($fn) {
-	assertFunction($fn, parameters(optional(T1::class), optional(T2::class)), optional(T2::class));
+	assertSignature($fn, params(nullable(T1::class), nullable(T2::class)), nullable(T2::class));
 }, \AssertionError::class /* todo: assert message */);
 
 // Wrong parameter type
 Assert::exception(function () use ($fn) {
-	assertFunction($fn, parameters(optional(T1::class), optional(T1::class)), optional(T3::class));
+	assertSignature($fn, params(nullable(T1::class), nullable(T1::class)), nullable(T3::class));
 }, \AssertionError::class /* todo: assert message */);
diff --git a/tests/fn.assertFunction.allRequired.phpt b/tests/fn.assertSignature.allRequired.phpt
similarity index 52%
rename from tests/fn.assertFunction.allRequired.phpt
rename to tests/fn.assertSignature.allRequired.phpt
index 05f7078b00c66961c1a98765bbb886999b20db33..6fa1c31cc9d4d8f3db632f0e6e14e32db3265744 100644
--- a/tests/fn.assertFunction.allRequired.phpt
+++ b/tests/fn.assertSignature.allRequired.phpt
@@ -2,19 +2,22 @@
 namespace MyTestNamespace;
 require __DIR__ . '/bootstrap.php';
 require __DIR__ . '/testClasses.php';
-use function Grifart\AssertFunction\{assertFunction, optional, parameters};
+use function Grifart\AssertFunction\{assertSignature, nullable, params};
 use Tester\Assert;
 
 
 $f1 = function(T1 $t1, T2 $t2): T3 {return new T3;};
-assertFunction($f1, parameters(T1::class, T2::class), T3::class);
+
+// Positive scenario
+assertSignature($f1, params(T1::class, T2::class), T3::class);
 
 // Optional by accident: parameter
 Assert::exception(function () use ($f1) {
-	assertFunction($f1, parameters(optional(T1::class), T2::class), T3::class);
+	assertSignature($f1, params(nullable(T1::class), T2::class), T3::class);
 }, \AssertionError::class);
 
 // Optional by accident: return type
 Assert::exception(function () use ($f1) {
-	assertFunction($f1, parameters(T1::class, T2::class), optional(T3::class));
+	assertSignature($f1, params(T1::class, T2::class), nullable(T3::class));
+//	assertFunction($f1, [params(T1::class, T2::class) => nullable(T3::class)]);
 }, \AssertionError::class);
diff --git a/tests/fn.assertFunction.wrongNumberOfArguments.phpt b/tests/fn.assertSignature.wrongNumberOfArguments.phpt
similarity index 63%
rename from tests/fn.assertFunction.wrongNumberOfArguments.phpt
rename to tests/fn.assertSignature.wrongNumberOfArguments.phpt
index da9e242d0657336e534f12e3a2053d8e5c6ff661..1956fabb492bbfb6f9b9dde5c704c7f2f3e07fbc 100644
--- a/tests/fn.assertFunction.wrongNumberOfArguments.phpt
+++ b/tests/fn.assertSignature.wrongNumberOfArguments.phpt
@@ -2,16 +2,16 @@
 namespace MyTestNamespace;
 require __DIR__ . '/bootstrap.php';
 require __DIR__ . '/testClasses.php';
-use function Grifart\AssertFunction\{assertFunction, optional, parameters};
+use function Grifart\AssertFunction\{assertSignature, nullable, params};
 use Tester\Assert;
-$position = 'assert-function-signature/tests/fn.assertFunction.wrongNumberOfArguments.phpt:9';
+$position = 'assert-function-signature/tests/fn.assertSignature.wrongNumberOfArguments.phpt:9';
 
 $f1 = function(T1 $t1, T2 $t2): T3 {return new T3;};
 
 // Wrong number of arguments
 Assert::exception(
 	function () use ($f1) {
-		assertFunction($f1, parameters(T1::class), T3::class);
+		assertSignature($f1, params(T1::class), T3::class);
 	},
 	\AssertionError::class,
 	"$position Given wrong number of parameters. Expected 1, 2 given."
@@ -19,7 +19,7 @@ Assert::exception(
 
 Assert::exception(
 	function () use ($f1) {
-		assertFunction($f1, parameters(T1::class, T2::class, T1::class), T3::class);
+		assertSignature($f1, params(T1::class, T2::class, T1::class), T3::class);
 	},
 	\AssertionError::class,
 	"$position Given wrong number of parameters. Expected 3, 2 given."
diff --git a/tests/fn.optional.phpt b/tests/fn.optional.phpt
index fe4fd77edf0f8aad63f2643a075d185c66135fe9..157edcbf37d648afbd5626649bfa6762cb8bb105 100644
--- a/tests/fn.optional.phpt
+++ b/tests/fn.optional.phpt
@@ -2,9 +2,9 @@
 namespace MyTestNamespace;
 require __DIR__ . '/bootstrap.php';
 
-use function Grifart\AssertFunction\optional;
+use function Grifart\AssertFunction\nullable;
 use Tester\Assert;
 
 class TestClass {};
 
-Assert::equal('?MyTestNamespace\TestClass', optional(TestClass::class));
+Assert::equal('?MyTestNamespace\TestClass', nullable(TestClass::class));
diff --git a/tests/fn.parameters.phpt b/tests/fn.parameters.phpt
index e00071fc8b1f43a5528eea02a98c8f1b8723b4f9..9e0fb3420da675731bbf3f44b9f3f0acf7e0059f 100644
--- a/tests/fn.parameters.phpt
+++ b/tests/fn.parameters.phpt
@@ -2,17 +2,17 @@
 namespace MyTestNamespace;
 require __DIR__ . '/bootstrap.php';
 
-use function Grifart\AssertFunction\optional;
-use function Grifart\AssertFunction\parameters;
+use function Grifart\AssertFunction\nullable;
+use function Grifart\AssertFunction\params;
 use Tester\Assert;
 
 class TestClass {};
 
-Assert::equal(['MyTestNamespace\TestClass'], parameters(TestClass::class));
+Assert::equal(['MyTestNamespace\TestClass'], params(TestClass::class));
 Assert::equal([
 	'MyTestNamespace\TestClass',
 	'MyTestNamespace\TestClass'
-], parameters(
+], params(
 	TestClass::class,
 	TestClass::class
 ));
@@ -20,7 +20,7 @@ Assert::equal([
 Assert::equal([
 	'?MyTestNamespace\TestClass',
 	'MyTestNamespace\TestClass'
-], parameters(
-	optional(TestClass::class),
+], params(
+	nullable(TestClass::class),
 	TestClass::class
 ));