more work on interface implementation skeleton