added most of the missing type signatures