Completely changed how this is done.