work on an interface
work on interface and tree agent