Modularised but slower.