upd: base functionality