added address generation