[wip] çrefactor with components