   @creation_fields ~w/email username password/a
   @update_fields ~w/email password confirmed/a
 
-  @default_pass_for_timing_attacks Bcrypt.hashpwsalt("I am ready!")
-
   @derive {Poison.Encoder, only: [:email, :username, :account_id]}
   @primary_key false
   @ecto_autogenerate {:account_id, {PK, :pk_for, [:account_account]}}

    |> prepare_changes()
  end

  @spec check_password(t | nil, password) :: boolean
  @doc """
  Checks if `pass` matches with `account`'s password

      iex> check_password(account, "incorrect password")
      false
  """
  def check_password(account = %__MODULE__{}, pass),
    do: Bcrypt.checkpw(pass, account.password)
  def check_password(nil, pass) do
    Bcrypt.checkpw(pass, @default_pass_for_timing_attacks)

    false
  end

  @spec generic_validations(Ecto.Changeset.t) :: Ecto.Changeset.t
  defp generic_validations(changeset) do
