less redundant stuff, but currently uses arraylist.. big no no!
some gui fixing