diff --git a/tests/check_builtin_literals_test.py b/tests/check_builtin_literals_test.py
index d4ac30f..dbb9cc4 100644
--- a/tests/check_builtin_literals_test.py
+++ b/tests/check_builtin_literals_test.py
@@ -2,9 +2,9 @@
 
 import pytest
 
-from pre_commit_hooks.check_builtin_literals import BuiltinTypeCall
-from pre_commit_hooks.check_builtin_literals import BuiltinTypeVisitor
+from pre_commit_hooks.check_builtin_literals import Call
 from pre_commit_hooks.check_builtin_literals import main
+from pre_commit_hooks.check_builtin_literals import Visitor
 
 BUILTIN_CONSTRUCTORS = '''\
 from six.moves import builtins
@@ -38,7 +38,7 @@
 
 @pytest.fixture
 def visitor():
-    return BuiltinTypeVisitor()
+    return Visitor()
 
 
 @pytest.mark.parametrize(
@@ -48,35 +48,35 @@
         ('x[0]()', []),
         # complex
         ("0j", []),
-        ("complex()", [BuiltinTypeCall('complex', 1, 0)]),
+        ("complex()", [Call('complex', 1, 0)]),
         ("complex(0, 0)", []),
         ("complex('0+0j')", []),
         ('builtins.complex()', []),
         # float
         ("0.0", []),
-        ("float()", [BuiltinTypeCall('float', 1, 0)]),
+        ("float()", [Call('float', 1, 0)]),
         ("float('0.0')", []),
         ('builtins.float()', []),
         # int
         ("0", []),
-        ("int()", [BuiltinTypeCall('int', 1, 0)]),
+        ("int()", [Call('int', 1, 0)]),
         ("int('0')", []),
         ('builtins.int()', []),
         # list
         ("[]", []),
-        ("list()", [BuiltinTypeCall('list', 1, 0)]),
+        ("list()", [Call('list', 1, 0)]),
         ("list('abc')", []),
         ("list([c for c in 'abc'])", []),
         ("list(c for c in 'abc')", []),
         ('builtins.list()', []),
         # str
         ("''", []),
-        ("str()", [BuiltinTypeCall('str', 1, 0)]),
+        ("str()", [Call('str', 1, 0)]),
         ("str('0')", []),
         ('builtins.str()', []),
         # tuple
         ("()", []),
-        ("tuple()", [BuiltinTypeCall('tuple', 1, 0)]),
+        ("tuple()", [Call('tuple', 1, 0)]),
         ("tuple('abc')", []),
         ("tuple([c for c in 'abc'])", []),
         ("tuple(c for c in 'abc')", []),
@@ -92,7 +92,7 @@
     ('expression', 'calls'),
     [
         ("{}", []),
-        ("dict()", [BuiltinTypeCall('dict', 1, 0)]),
+        ("dict()", [Call('dict', 1, 0)]),
         ("dict(a=1, b=2, c=3)", []),
         ("dict(**{'a': 1, 'b': 2, 'c': 3})", []),
         ("dict([(k, v) for k, v in [('a', 1), ('b', 2), ('c', 3)]])", []),
@@ -108,20 +108,22 @@
 @pytest.mark.parametrize(
     ('expression', 'calls'),
     [
-        ("dict()", [BuiltinTypeCall('dict', 1, 0)]),
-        ("dict(a=1, b=2, c=3)", [BuiltinTypeCall('dict', 1, 0)]),
-        ("dict(**{'a': 1, 'b': 2, 'c': 3})", [BuiltinTypeCall('dict', 1, 0)]),
+        ("dict()", [Call('dict', 1, 0)]),
+        ("dict(a=1, b=2, c=3)", [Call('dict', 1, 0)]),
+        ("dict(**{'a': 1, 'b': 2, 'c': 3})", [Call('dict', 1, 0)]),
         ('builtins.dict()', []),
     ],
 )
 def test_dict_no_allow_kwargs_exprs(expression, calls):
-    visitor = BuiltinTypeVisitor(allow_dict_kwargs=False)
+    visitor = Visitor(allow_dict_kwargs=False)
     visitor.visit(ast.parse(expression))
     assert visitor.builtin_type_calls == calls
 
 
 def test_ignore_constructors():
-    visitor = BuiltinTypeVisitor(ignore=('complex', 'dict', 'float', 'int', 'list', 'str', 'tuple'))
+    visitor = Visitor(ignore=(
+        'complex', 'dict', 'float', 'int', 'list', 'str', 'tuple',
+    ))
     visitor.visit(ast.parse(BUILTIN_CONSTRUCTORS))
     assert visitor.builtin_type_calls == []
 
