Added generics
wip