# Re-use a smart field logic

This example shows you how to re-use the logic of your smart field.

Here, we created a `fullname` field that concatenates first and last name. We'll create our own function and export it for use elsewhere in our admin backend.

![](https://2793709227-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M0vHiS-1S9Hw3djvoTw%2F-M4YuOLKnbRETkVrFyZy%2F-M4Z0XYTrDpuCqrTrnTE%2Fsmart-field.png?alt=media\&token=e1e0d66c-e43b-49de-8a5d-e0d6a441f927)

## Requirements

* An admin backend running on forest-express-sequelize

## How it works

### Directory: /models

This directory contains the `users.js` where the model is defined.&#x20;

{% code title="/models/users.js" %}

```javascript
module.exports = (sequelize, DataTypes) => {
  const { Sequelize } = sequelize;

  const Users = sequelize.define('users', {
    firstName: {
      type: DataTypes.STRING,
    },
    lastName: {
      type: DataTypes.STRING,
    },
  }, {
    tableName: 'users',
    timestamps: false,
    schema: process.env.DATABASE_SCHEMA,
  });

  return  Users;
};
```

{% endcode %}

### Directory: /forest

This directory contains the `users.js` file where the Smart Field `fullname`is declared.

```javascript
const { collection } = require('forest-express-sequelize');

// create our own module
const getFullname = (user) => {
  return `${user.firstName} ${user.lastName}`;
};


collection('users', {
  fields: [{
    field: 'fullname',
    type: 'String',
    get: getFullname,
  }],
});

// export it to use it somewhere else in our admin backend
module.exports = {
  getFullname,
};
```

{% hint style="info" %}
You can now require this module everywhere in your admin backend:

```
const { getFullname } = require('../forest/user');
```

{% endhint %}
