makes use of generics with handles now