My long term research program is to use the constructions and techniques of classical invariant theory to develop a new approach to solve a class of basic questions in representation theory. Let G be a complex classical group and H a subgroup of G of a certain type. Then a branching algebra R for (G,H) is an algebra whose structure encodes the branching rule from G to H. We have constructed branching algebras corresponding to certain classical symmetric pairs and also branching algebras associated with the iterated Pieri rules. We have also determined explicit bases for all these algebras, where the basis elements can be identified with highest weight vectors for H in a representation for G. Part of our results were used to give a new proof of the Littlewood-Richardson Rule which describes multiplicities in the tensor product of 2 irreducible representations of the general linear group. The branching algebras associated with the iterated Pieri rule were also used to determine the kernel of a map related to the structure of polynomial rings. Very recently, we were able to apply our techniques to describe all the highest weight vectors explicitly in plethysms in some cases.