Implemented more interfaces
Improved tests.