Advancing Co-Evolutionary Methods To Determine Protein Function Through Theory And Application