Implementation of method validation.  Requires some clean up and test coverage