less magic numbers, more variables