2nd pass at data structures