task: there are two advanced methods...
task: a bit extra whitespace
feature: add a third ZCLM variant