refactor sacando conceptos funcionales