cleaned up my fading code and documented it better in final version 1