Besides Solidity, Embark now also supports [Vyper](https://github.com/ethereum/vyper/) out of the box, as well as [Bamboo](https://github.com/pirapira/bamboo) through an embark [plugin](https://github.com/embarklabs/embark-bamboo)
You can use these languages side by side, and take advantage of Embark's features such as contract testing just like you would with Solidity.
## DApp Imports
From the dapp side, contracts and libs like EmbarkJS can be implicitly imported, for e.g to import a contract:
```Javascript
import SimpleStorage from 'Embark/contracts/SimpleStorage'
```
EmbarkJS:
```Javascript
import EmbarkJS from 'Embark/EmbarkJS'
```
Or a initialized web3 instances (with the config of `config/contracts.json`)
```Javascript
import web3 from 'Embark/web3'
```
The typical ES6 imports will also simply work. You can even import directly css files inside js files:
```Javascript
import React from 'react';
import { Tabs, Tab } from 'react-bootstrap';
import './dapp.css';
```
## Friendlier torwards contracts-only projects
Although Embark is focused on DApps, it can perfectly be used for projects targeting only smart contracts and no other components.
There is a now a template to create a simple project with all the components disabled except smart contracts:
`embark new AppName --simple`
You can also fine tune this in embark.json by specifying the config of each component or setting it to false if you don't want it.
```JSON
...
"config": {
"contracts": "contracts.json",
"blockchain": false,
"storage": false,
"communication": false,
"webserver": false
},
...
```
## Embark Graph
The command `embark graph` will generate a ER graph of the dapp contracts. This takes into account not just the inheritance but also the relationships specified in the configuration.
## Config contracts from URIs
Embark now supports referencing directly URIs including http, git, github, or directly files contained in other directories than the ones specified in embark.json
Embark is smart enough to take care of the dependencies of the resources and present them in a consistent manner to the compiler, it just works!
You can now install npm packages that contain contracts (e.g `npm install --save openzeppelin-solidity`) and refer them to them in the contracts.json file: