implementing some caching in callBART(), making more flexible constructors