I restructured it a little bit.
I would rather keep the validation of fields' existence here, than pushing it down into the credentials classes.