Started again. This one is not DRY at all, but it works.