split out method