Mercury branch - all the changes and functionality we need to have Mercury skin working

DO NOT MERGE, THIS PR IS PART OF PROJECT MERCURY! 
Multiple return statements. If this was temporary, be sure to fix later.