made it a little more generic