Updated to reflect current state of code.