Understanding allosteric and cooperative interactions in enzymes