refactored to have better var names