update
update portrait exception handle
add backend interaction