made a lot of changes to arrayList