Even more parameterization and cleanup