more parameterized crazyness