new approach -- only create the cells we need
added an overhaul to only generate the cells we need