Near as I can tell, it looks fine. I would not actually use ArrayList as my reference type; instead, I would use the more generic List (or even Collection). That way I could change it to a LinkedList or even some typ eo fSet if I wanted to. Are you having any specific problems with this code? If so, please post them. We can't solve a problem if we don't know what it is.
Piscis Babelis est parvus, flavus, et hiridicus, et est probabiliter insolitissima raritas in toto mundo.