todo and EM
update
update