@Override
  protected Account removeImpl(Account account) throws SystemException {
    account = toUnwrappedModel(account);

    Session session = null;

    try {
      session = openSession();

      if (!session.contains(account)) {
        account = (Account) session.get(AccountImpl.class, account.getPrimaryKeyObj());
      }

      if (account != null) {
        session.delete(account);
      }
    } catch (Exception e) {
      throw processException(e);
    } finally {
      closeSession(session);
    }

    if (account != null) {
      clearCache(account);
    }

    return account;
  }