абстрагировал операции от типов данных