gradiant flow version. needs recursion, datatype to hold and access dynamic amounts of arraylists