Сделал проверку типов. Добавил тесты для проверки типов. Так же множество доработок.