Updated with type support