# 12. __Troubleshooting__

[![+Professional Support](https://www.totaljs.com/img/badge-support.svg)](https://www.totaljs.com/support/) [![+Chat with contributors](https://www.totaljs.com/img/badge-chat.svg)](https://messenger.totaljs.com)

- [Migration from v15 to v16](#)
- [`<body` contains additional classes](#)

## Migration from v15 to v16

The big different between `v15` and `v16` is in component internal prototypes. Changes are described here:

```javascript
component.set([path], value, [type]) // v15
component.set(value, [type]); // v16

component.inc([path], value, [type]); // v15
component.inc(value, [type]); // v16

component.extend([path], value, [type]; // v15
component.extend(value, [type]); // v16

component.rewrite([path], value, [type]); // v15
component.rewrite(value, [type]); // v16
```

__Removed__:

- `M.cookies`
- `M.dirty`
- `M.valid`
- `M.validate2`
- `Array.prototype.waitFor`

### `<body` contains additional classes

`+v18` appends jComponent custom classes on the body element.

- `jc-mobile` if the browser is in mobile device
- `jc-touch` the browser supports touch methods
- `jc-private` runs in private mode
- `jc-ie` current browser is Internet Explorer
- `jc-standalone` is enabled a standalone browser mode