some parameterizing and renaming