basic implementation of interactive add