pull from UPSTREAM 2048 + TODO

pulling UPSTREAM changes from original 2048 'master' and 'GH-pages' for
relevant code refactoring and prioritizing desired changes