too long to read.. lol