context can be passed a VM or create its own
fix package.json
reorganise tokens
entry point