Move ScriptCode to appropriate module.
Update documentation and derived instances.
Move non-public modules into Internal namespace.
WIP version with WIP interface.