started implemented type checks to make sure functions speak the same language