Further refactoring
Ansatz 1