begin clc refactor