restructure ExecuteProcedure with specific expectation classes