assign was not executing yield baecause it was just testing for send, instead of callable
working on return semanitcs (still avoiding the implicit return)