added alternate generation