Manual refactor required as described.