interfaces added and tests simplified