added generic and pretty