Introduced a more complete types handling