Introduced proper parameter generics
updated tests
small fix
up
up
redefined metrics
up