figure out the implementation of yield is bad. abort yield