diff --git a/keyboa/button.py b/keyboa/button.py
index 6280ba8..9b70703 100644
--- a/keyboa/button.py
+++ b/keyboa/button.py
@@ -46,6 +46,9 @@ class Button(ButtonCheck):
     back_marker: CallbackDataMarker = str()
     copy_text_to_callback: Optional[bool] = None
 
+    def __call__(self, *args, **kwargs):
+        return self.generate()
+
     def generate(self) -> InlineKeyboardButton:
         """
         This function creates an InlineKeyboardButton object from various data types,

diff --git a/tests/test_base.py b/tests/test_base.py
index 78dc2cb..1c77e28 100644
--- a/tests/test_base.py
+++ b/tests/test_base.py
@@ -17,7 +17,7 @@ def test_items_is_none_or_empty():
     :return:
     """
     with pytest.raises(ValueError) as _:
-        Keyboa(items=list())
+        Keyboa(items=[])
     with pytest.raises(ValueError) as _:
         Keyboa(items=None)
 
diff --git a/tests/test_button.py b/tests/test_button.py
index b0a8ad1..435183a 100644
--- a/tests/test_button.py
+++ b/tests/test_button.py
@@ -37,7 +37,7 @@ UNACCEPTABLE_BUTTON_SOURCE_TYPES = (
     {2, "a"},
     {"a", 2},
     [2, "a"],
-    (2, dict()),
+    (2, {}),
     ["a", 2],
     (None, 2),
     (None, None),
@@ -284,3 +284,8 @@ def test_none_as_markers():
 def test_button_property():
     btn = Button(button_data="button_text", copy_text_to_callback=True).button
     assert isinstance(btn, InlineKeyboardButton)
+
+
+def test_button_call_method():
+    btn = Button(button_data="button_text", copy_text_to_callback=True)
+    assert isinstance(btn(), InlineKeyboardButton)
diff --git a/tests/test_keyboard.py b/tests/test_keyboard.py
index 41627fb..0709297 100644
--- a/tests/test_keyboard.py
+++ b/tests/test_keyboard.py
@@ -667,3 +667,22 @@ def test_kb_with_items_in_row_and_last_buttons():
         items_in_row=2,
     ).keyboard
     assert len(keyboa.keyboard) == 4
+
+
+def test_kb_is_callable():
+    keyboa = Keyboa(
+        items=[
+            (1, "a"),
+            (2, "b"),
+            (3, "c"),
+            (4, "d"),
+            (5, "e"),
+            (6, "f"),
+        ],
+        back_marker="_is_callable",
+        items_in_row=2,
+    )
+    assert type(keyboa.keyboard) == type(keyboa())
+    assert keyboa.keyboard.to_json() == keyboa().to_json() == keyboa.slice().to_json()
+    assert keyboa.slice(slice(3)).to_json() == keyboa(slice(3)).to_json()
+    assert keyboa.slice(slice(2, 4, 2)).to_json() == keyboa(slice(2, 4, 2)).to_json()

(PTC-W0019) Consider using literal syntax to create the data structure
## Description
Using the literal syntax can give minor performance bumps compared to using function calls to create `dict`, `list` and `tuple`.

## Occurrences
There are 2 occurrences of this issue in the repository.

See all occurrences on DeepSource &rarr; [deepsource.io/gh/torrua/keyboa/issue/PTC-W0019/occurrences/](https://deepsource.io/gh/torrua/keyboa/issue/PTC-W0019/occurrences/)

tests/test_button.py::test_button_call_method
tests/test_base.py::test_items_is_none_or_empty tests/test_base.py::test_copy_text_to_callback_is_not_bool tests/test_base.py::test_number_of_items_out_of_limits tests/test_base.py::test_number_of_items_in_row_out_of_limits tests/test_button.py::test_acceptable_button_source_types[2_0] tests/test_button.py::test_acceptable_button_source_types[a] tests/test_button.py::test_acceptable_button_source_types[2_1] tests/test_button.py::test_acceptable_button_source_types[button_data3] tests/test_button.py::test_acceptable_button_source_types[button_data4] tests/test_button.py::test_acceptable_button_source_types[button_data5] tests/test_button.py::test_acceptable_button_source_types[button_data6] tests/test_button.py::test_acceptable_button_source_types[button_data7] tests/test_button.py::test_unacceptable_button_source_types_without_callback[2_0] tests/test_button.py::test_unacceptable_button_source_types_without_callback[a] tests/test_button.py::test_unacceptable_button_source_types_without_callback[2_1] tests/test_button.py::test_unacceptable_button_source_types_without_callback[button_data3] tests/test_button.py::test_unacceptable_button_source_types[button_data0] tests/test_button.py::test_unacceptable_button_source_types[button_data1] tests/test_button.py::test_unacceptable_button_source_types[button_data2] tests/test_button.py::test_unacceptable_button_source_types[button_data3] tests/test_button.py::test_unacceptable_button_source_types[button_data4] tests/test_button.py::test_unacceptable_button_source_types[button_data5] tests/test_button.py::test_unacceptable_button_source_types[button_data6] tests/test_button.py::test_unacceptable_button_source_types[None] tests/test_button.py::test_unacceptable_front_marker_type tests/test_button.py::test_unacceptable_back_marker_type tests/test_button.py::test_unacceptable_callback_data_type tests/test_button.py::test_unacceptable_text_type[button_data0] tests/test_button.py::test_unacceptable_text_type[button_data1] tests/test_button.py::test_unacceptable_text_type[button_data2] tests/test_button.py::test_create_button_from_dict_tuple_list[button_data0] tests/test_button.py::test_create_button_from_dict_tuple_list[button_data1] tests/test_button.py::test_create_button_from_int_or_str_with_copy_option[12345_0] tests/test_button.py::test_create_button_from_int_or_str_with_copy_option[12345_1] tests/test_button.py::test_create_button_from_int_or_str_without_copy_option[12345_0] tests/test_button.py::test_create_button_from_int_or_str_without_copy_option[12345_1] tests/test_button.py::test_create_button_from_int_or_str_without_callback[12345_0] tests/test_button.py::test_create_button_from_int_or_str_without_callback[12345_1] tests/test_button.py::test_create_button_from_button tests/test_button.py::test_empty_text tests/test_button.py::test_empty_callback_data tests/test_button.py::test_big_callback_data tests/test_button.py::test_none_as_markers tests/test_button.py::test_button_property tests/test_keyboard.py::test_keyboards_is_none tests/test_keyboard.py::test_keyboards_is_single_keyboard tests/test_keyboard.py::test_keyboards_is_multi_keyboards tests/test_keyboard.py::test_not_keyboard_for_merge tests/test_keyboard.py::test_merge_two_keyboard_into_one_out_of_limits tests/test_keyboard.py::test_pass_string_with_copy_to_callback tests/test_keyboard.py::test_pass_string_without_copy_to_callback tests/test_keyboard.py::test_pass_one_button tests/test_keyboard.py::test_pass_one_item_dict_with_text_field tests/test_keyboard.py::test_pass_one_item_dict_without_text_field tests/test_keyboard.py::test_pass_multi_item_dict_without_text_field tests/test_keyboard.py::test_pass_one_row tests/test_keyboard.py::test_pass_structure tests/test_keyboard.py::test_auto_keyboa_maker_alignment tests/test_keyboard.py::test_auto_keyboa_maker_items_in_row tests/test_keyboard.py::test_slice tests/test_keyboard.py::test_minimal_kb_with_copy_text_to_callback_specified_none tests/test_keyboard.py::test_minimal_kb_with_items_out_of_limits tests/test_keyboard.py::test_minimal_kb_with_copy_text_to_callback_specified_true tests/test_keyboard.py::test_minimal_kb_with_copy_text_to_callback_specified_false tests/test_keyboard.py::test_minimal_kb_with_fixed_items_in_row[2] tests/test_keyboard.py::test_minimal_kb_with_fixed_items_in_row[3] tests/test_keyboard.py::test_minimal_kb_with_fixed_items_in_row[4] tests/test_keyboard.py::test_minimal_kb_with_fixed_items_in_row[6] tests/test_keyboard.py::test_minimal_kb_with_front_marker tests/test_keyboard.py::test_minimal_kb_with_front_marker_and_copy_text_to_callback tests/test_keyboard.py::test_minimal_kb_with_back_marker tests/test_keyboard.py::test_minimal_kb_with_back_marker_out_of_limits tests/test_keyboard.py::test_minimal_kb_with_back_marker_out_of_limits_with_text tests/test_keyboard.py::test_minimal_kb_with_empty_back_marker tests/test_keyboard.py::test_minimal_kb_with_back_marker_and_copy_text_to_callback tests/test_keyboard.py::test_minimal_kb_with_front_and_back_markers tests/test_keyboard.py::test_minimal_kb_with_front_and_back_markers_and_copy_text_to_callback tests/test_keyboard.py::test_minimal_kb_with_front_and_back_markers_and_copy_text_to_callback_is_false tests/test_keyboard.py::test_minimal_kb_with_alignment_true tests/test_keyboard.py::test_minimal_kb_with_items_in_row tests/test_keyboard.py::test_minimal_kb_with_items_in_row_out_of_limits tests/test_keyboard.py::test_minimal_kb_with_alignment_true_slice tests/test_keyboard.py::test_minimal_kb_with_alignment_true_and_reversed_alignment_true tests/test_keyboard.py::test_minimal_kb_with_alignment_specified tests/test_keyboard.py::test_minimal_kb_with_alignment_specified_out_of_limits tests/test_keyboard.py::test_minimal_kb_with_alignment_specified_and_reversed_alignment_true tests/test_keyboard.py::test_minimal_kb_with_reversed_alignment_true tests/test_keyboard.py::test_minimal_kb_with_all_parameters_specified_reversed_range_true tests/test_keyboard.py::test_minimal_kb_with_all_parameters_specified_reversed_range_false tests/test_keyboard.py::test_structured_kb tests/test_keyboard.py::test_structured_kb_with_alignment tests/test_keyboard.py::test_structured_kb_with_items_in_row tests/test_keyboard.py::test_structured_kb_with_front_marker tests/test_keyboard.py::test_structured_kb_with_front_marker_no_copy_text_to_callback tests/test_keyboard.py::test_kb_from_tuples tests/test_keyboard.py::test_kb_from_tuples_with_front_marker tests/test_keyboard.py::test_kb_from_tuples_with_back_marker_and_items_in_row tests/test_keyboard.py::test_kb_with_items_in_row_and_last_buttons tests/test_keyboard.py::test_kb_is_callable