restructed everything to look nice