Big update.
PS: Bad commit I know, but I'm too lazy this time to make a good one.