worked on type signitures
merged