Generic Backend Interface

Added backend interfaces and a much more robust test suite.