Make it more generic