adding some conditionals
a method can take a single arg
expansion and cleanup