direct_term save via constructor