another attempted fix of the fade_out() bug (beginning of a complete rewrite to fading)