Refactored for IStatement

No Statement and AdhocStatement both inherit from virtual interface
IStatement