getting how this type system works