restructured block code to now  hold one list of multiple types