Major Overhaul

Big changes made with help from @namaless