refactor typelist