```coffeescript
Grim = require 'grim'
if Grim.includeDeprecations
  module.exports = require('theorist').Model
  return

PropertyAccessors = require 'property-accessors'

nextInstanceId = 1

module.exports =
class Model
  PropertyAccessors.includeInto(this)

  @resetNextInstanceId: -> nextInstanceId = 1

  constructor: (params) ->
    @assignId(params?.id)

  assignId: (id) ->
    @id ?= id ? nextInstanceId++

  @::advisedAccessor 'id',
    set: (id) -> nextInstanceId = id + 1 if id >= nextInstanceId

  destroy: ->
    return unless @isAlive()
    @alive = false
    @destroyed?()

  isAlive: -> @alive

  isDestroyed: -> not @isAlive()
```

Add alive ivar to light Model
user
```coffeescript
Grim = require 'grim'
if Grim.includeDeprecations
  module.exports = require('theorist').Model
  return

PropertyAccessors = require 'property-accessors'

nextInstanceId = 1

module.exports =
class Model
  PropertyAccessors.includeInto(this)

  @resetNextInstanceId: -> nextInstanceId = 1

  alive: true

  constructor: (params) ->
    @assignId(params?.id)

  assignId: (id) ->
    @id ?= id ? nextInstanceId++

  @::advisedAccessor 'id',
    set: (id) -> nextInstanceId = id + 1 if id >= nextInstanceId

  destroy: ->
    return unless @isAlive()
    @alive = false
    @destroyed?()

  isAlive: -> @alive

  isDestroyed: -> not @isAlive()
```
assistant