clean up the home logic (and actually get it right this time?)