shouldn't use undefined data, would always throw an error