add typing support