algo de refactor y agregadas las clases que faltaron