Add an API that mimmicks Elm design architecture.

see : https://gist.github.com/evancz/2b2ba366cae1887fe621