made it more general