Ya know what? this topic is way too long!