[MRG] Avoid duplicated methods whenever possible + more robust parameter passing

The main goal of this pr is to ease maintenance.
Unfortunately, this is needed by the class logic. I can add a private `_validate_y`.