Added some stuff, still needs more explanation but too tired