remove useless functions
add location to variable declaration
create type variable for type constructor