make fragment non-generic and pass type through arguments