refactored huddle:object api. (!! caution: does not work properly if huddle:canvas isn't added separately)