function validate_signup()
 {
     require_once WPPR_PLUGIN_DIR . '/models/signup-model.php';
     $model = new Signup_Model();
     if (username_exists($this->username)) {
         return new WP_Error('username_unavailable', 'Username already taken');
     }
     if (!validate_username($this->username)) {
         // invalid username
         return new WP_Error('username_invalid', 'Username is invalid');
     }
     if (strlen($this->username) < 4) {
         return new WP_Error('username_length', 'Username too short. At least 4 characters is required');
     }
     if (!is_email($this->email)) {
         return new WP_Error('email_invalid', 'Email is not valid');
     }
     if (email_exists($this->email)) {
         return new WP_Error('email', 'Email is already in used.');
     }
     if ($model->validate_email($this->email)) {
         return new WP_Error('email', 'You already used this email to signup. Please check your email for confirmation.');
     }
     if (strlen($this->password) <= 5) {
         return new WP_Error('password_too_short', 'Password is too short.');
     }
 }