How to make this entity fieldable? I want to make my entity fieldable and manageable from admin area with manage display and manage field admin ui. I have read few tutorials, but I still not understand how to do it? This question is related to my other question. Here is my entity code.

function statuses_entity_info() {
  $backupControl = module_exists('entity') ? 'EntityAPIController' : 'DrupalDefaultEntityController';
  return array(
    'status' =&gt; array(
      'label' =&gt; t('Status'),
      'plural label' =&gt; t('Statuses'),
      'description' =&gt; t('A status update.'),
      'entity class' =&gt; 'StatusEntity',
      'controller class' =&gt; module_exists('statuses') ? 'StatusesEntityController' : $backupControl,
      'base table' =&gt; 'statuses',
      'load hook' =&gt; 'statuses_load',
      'uri callback' =&gt; 'statuses_uri',
      'module' =&gt; 'statuses',
      'entity keys' =&gt; array(
        'id' =&gt; 'sid',
        'label' =&gt; 'message',
      ),
       'bundles' =&gt; array(
        'status' =&gt; array(
          'label' =&gt; t('Status'),
        ),
      ),
      'view modes' =&gt; array(
        'full' =&gt; array(
          'label' =&gt; t('Status message'),
          'custom settings' =&gt; FALSE,
        ),
      ),
      'entity cache' =&gt; FALSE,
    ),
  );
}

function statuses_entity_property_info()  {
  $info = array();

  $info['status']['properties']['sid'] = array(
    'label' =&gt; t('Status ID'),
    'description' =&gt; t('The ID of the status'),
    'type' =&gt; 'integer',
    'schema field' =&gt; 'sid',
  );

  $info['status']['properties']['sender'] = array(
    'label' =&gt; t('Status sender'),
    'description' =&gt; t('Sender uid of the status message'),
    'type' =&gt; 'integer',
    'schema field' =&gt; 'sender',
  );
  $info['status']['properties']['recipient'] = array(
    'label' =&gt; t('Status recipient'),
    'description' =&gt; t('Recipient uid of the status message'),
    'type' =&gt; 'integer',
    'schema field' =&gt; 'recipient',
  );
  $info['status']['properties']['type'] = array(
    'label' =&gt; t('Type'),
    'description' =&gt; t('Type of status message'),
    'type' =&gt; 'text',
    'schema field' =&gt; 'type',
  );
  $info['status']['properties']['created'] = array(
    'label' =&gt; t('Created'),
    'description' =&gt; t('UNIX Timestamp of creation date'),
    'type' =&gt; 'integer',
    'schema field' =&gt; 'created',
  );
  $info['status']['properties']['message'] = array(
    'label' =&gt; t('Message'),
    'description' =&gt; t('Status message'),
    'type' =&gt; 'text',
    'schema field' =&gt; 'message',
  );
  return $info;
}

function statuses_uri($status)  {
  return array(
    'path' =&gt; 'statuses/' . $status-&gt;sid,
  );
}


class StatusesEntityController extends EntityAPIController  {
//TODO
}


if (class_exists('Entity')) {
  class StatusEntity extends Entity {
    public function __construct(array $values = array(), $entityType = NULL)  {
      parent::__construct($values, 'status');
    }

    public function buildContent($view_mode = 'full', $langcode = NULL) {
      $content['sender'] = array(
      '#markup' =&gt; 'Sender Markup TEST',
      );
      $content['recipient'] = array(
        '#markup' =&gt; 'Recipient Markup TEST',
      );
      $content['created'] = array(
        '#markup' =&gt; 'Created Markup TEST',
      );
      $content['message'] = array(
        '#markup' =&gt; 'Message Markup TEST',
      );
      $content['sid'] = array(
        '#markup' =&gt; 'sid Markup TEST',
      );
      $content['type'] = array(
        '#markup' =&gt; 'type Markup TEST',
      );
      return entity_get_controller($this-&gt;entityType)-&gt;buildContent($this, $view_mode, $langcode, $content);


    }
  }
}
Just add the fieldable key and set it to true:

return array(
  'status' =&gt; array(
    'label' =&gt; t('Status'),
    'plural label' =&gt; t('Statuses'),
    'fieldable' =&gt; TRUE,
    ...