type improvements wip