more work on interface