Implementing the new interfaces and applying changes. Some test cases still fail.