big refactor with Jorge Cano