more work on definition interface