it works but tricky
update