edited: parameterized