just made it a bit more generic