Reworked pretty much everything :D