trying to calrify the type system