You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@royale.apache.org by gr...@apache.org on 2021/10/09 03:49:14 UTC

[royale-asjs] 02/03: MXRoyale/MXRoyaleBase split

This is an automated email from the ASF dual-hosted git repository.

gregdove pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/royale-asjs.git

commit 1675a0d259f91fa31a18e65556b2d164a23b4a25
Author: greg-dove <gr...@gmail.com>
AuthorDate: Thu Oct 7 11:42:59 2021 +1300

    MXRoyale/MXRoyaleBase split
---
 frameworks/build.xml                               |   11 +
 frameworks/js/build.xml                            |    6 +
 frameworks/js/projects/MXRoyaleBaseJS/build.xml    |  138 ++
 .../src/main/config/compile-js-config.xml          |   45 +-
 .../src/test/royale/build.xml                      |   10 +-
 .../src/main/config/compile-js-config.xml          |    7 +
 frameworks/projects/MXRoyale/asconfig.json         |    3 +-
 frameworks/projects/MXRoyale/pom.xml               |   30 +-
 .../src/main/config/compile-swf-config.xml         |    9 +-
 .../src/main/resources/mx-royale-manifest.xml      |   61 +-
 .../MXRoyale/src/main/royale/MXRoyaleClasses.as    |  179 +-
 .../{MXRoyale => MXRoyaleBase}/asconfig.json       |    4 +-
 frameworks/projects/MXRoyaleBase/build.xml         |  177 ++
 .../projects/{MXRoyale => MXRoyaleBase}/pom.xml    |   54 +-
 .../src/main/config/compile-swf-config.xml         |   51 +-
 .../src/main/resources/mx-royale-as-manifest.xml   |   26 +
 .../src/main/resources/mx-royale-manifest.xml      |   75 +
 .../src/main/royale/MXRoyaleBaseClasses.as         |  312 +++
 .../src/main/royale/mx/binding/BindabilityInfo.as  |    0
 .../src/main/royale/mx/binding/Binding.as          |    0
 .../src/main/royale/mx/binding/BindingManager.as   |    0
 .../src/main/royale/mx/binding/IBindingClient.as   |    0
 .../main/royale/mx/binding/utils/BindingUtils.as   |    0
 .../main/royale/mx/binding/utils/ChangeWatcher.as  |    0
 .../main/royale/mx/collections/ArrayCollection.as  |  372 ++--
 .../src/main/royale/mx/collections/ArrayList.as    |    0
 .../main/royale/mx/collections/AsyncListView.as    |    0
 .../mx/collections/ComplexFieldChangeWatcher.as    |    0
 .../main/royale/mx/collections/CursorBookmark.as   |  328 +--
 .../mx/collections/DefaultSummaryCalculator.as     |    0
 .../src/main/royale/mx/collections/Grouping.as     |    0
 .../royale/mx/collections/GroupingCollection.as    |    0
 .../royale/mx/collections/GroupingCollection2.as   |    0
 .../main/royale/mx/collections/GroupingField.as    |  982 ++++-----
 .../mx/collections/HierarchicalCollectionView.as   |    0
 .../HierarchicalCollectionViewCursor.as            |    0
 .../main/royale/mx/collections/HierarchicalData.as |    0
 .../main/royale/mx/collections/ICollectionView.as  |  588 ++---
 .../royale/mx/collections/IComplexSortField.as     |    0
 .../royale/mx/collections/IGroupingCollection.as   |    0
 .../royale/mx/collections/IGroupingCollection2.as  |    0
 .../mx/collections/IHierarchicalCollectionView.as  |    0
 .../IHierarchicalCollectionViewCursor.as           |    0
 .../royale/mx/collections/IHierarchicalData.as     |    0
 .../src/main/royale/mx/collections/IList.as        |    0
 .../src/main/royale/mx/collections/ISort.as        |    0
 .../src/main/royale/mx/collections/ISortField.as   |    0
 .../royale/mx/collections/ISummaryCalculator.as    |    0
 .../src/main/royale/mx/collections/IViewCursor.as  |    0
 .../main/royale/mx/collections/LeafNodeCursor.as   |    0
 .../royale/mx/collections/ListCollectionView.as    |    0
 .../src/main/royale/mx/collections/Sort.as         |    0
 .../src/main/royale/mx/collections/SortField.as    |    0
 .../royale/mx/collections/SortFieldCompareTypes.as |    0
 .../src/main/royale/mx/collections/SummaryField.as |    0
 .../main/royale/mx/collections/SummaryField2.as    |    0
 .../main/royale/mx/collections/SummaryObject.as    |    0
 .../src/main/royale/mx/collections/SummaryRow.as   |    0
 .../main/royale/mx/collections/XMLListAdapter.as   |    0
 .../royale/mx/collections/XMLListCollection.as     |    0
 .../royale/mx/collections/errors/CursorError.as    |    0
 .../mx/collections/errors/ItemPendingError.as      |    0
 .../main/royale/mx/collections/errors/SortError.as |    0
 .../src/main/royale/mx/core/ClassFactory.as        |   90 +-
 .../src/main/royale/mx/core/EventPriority.as       |  238 +-
 .../src/main/royale/mx/core/FlexGlobals.as         |    0
 .../src/main/royale/mx/core/FlexVersion.as         |    0
 .../src/main/royale/mx/core/IChildList.as          |    0
 .../main/royale/mx/core/IDisplayObjectInterface.as |    0
 .../src/main/royale/mx/core/IFactory.as            |   96 +-
 .../src/main/royale/mx/core/IFlexDisplayObject.as  |    0
 .../src/main/royale/mx/core/IFlexModule.as         |    0
 .../src/main/royale/mx/core/IFlexModuleFactory.as  |    0
 .../src/main/royale/mx/core/IMXMLObject.as         |    0
 .../main/royale/mx/core/IPropertyChangeNotifier.as |    0
 .../src/main/royale/mx/core/IUIComponent.as        |    0
 .../src/main/royale/mx/core/IUID.as                |    0
 .../src/main/royale/mx/core/Keyboard.as            |    0
 .../src/main/royale/mx/core/Singleton.as           |    0
 .../src/main/royale/mx/core/mx_internal.as         |    0
 .../src/main/royale/mx/data/EncryptedLocalStore.as |    0
 .../src/main/royale/mx/errors/EOFError.as          |    0
 .../main/royale/mx/errors/IllegalOperationError.as |    0
 .../main/royale/mx/errors/ScriptTimeoutError.as    |    0
 .../src/main/royale/mx/events/AsyncErrorEvent.as   |  218 +-
 .../src/main/royale/mx/events/CollectionEvent.as   |    0
 .../main/royale/mx/events/CollectionEventKind.as   |    0
 .../src/main/royale/mx/events/DataEvent.as         |    0
 .../src/main/royale/mx/events/ErrorEvent.as        |  222 +-
 .../src/main/royale/mx/events/FlexEvent.as         |    0
 .../src/main/royale/mx/events/HTTPStatusEvent.as   |  226 +-
 .../src/main/royale/mx/events/IOErrorEvent.as      |  222 +-
 .../src/main/royale/mx/events/IndexChangedEvent.as |    0
 .../src/main/royale/mx/events/NetStatusEvent.as    |  222 +-
 .../src/main/royale/mx/events/ProgressEvent.as     |    0
 .../main/royale/mx/events/PropertyChangeEvent.as   |    0
 .../royale/mx/events/PropertyChangeEventKind.as    |    0
 .../src/main/royale/mx/events/RSLEvent.as          |    0
 .../src/main/royale/mx/events/ResourceEvent.as     |    0
 .../main/royale/mx/events/SecurityErrorEvent.as    |  218 +-
 .../src/main/royale/mx/events/TextEvent.as         |  254 +--
 .../src/main/royale/mx/events/TimerEvent.as        |    0
 .../main/royale/mx/events/ValidationResultEvent.as |  478 ++--
 .../main/royale/mx/external/ExternalInterface.as   |    0
 .../main/royale/mx/formatters/CurrencyFormatter.as |    0
 .../src/main/royale/mx/formatters/DateBase.as      |    0
 .../src/main/royale/mx/formatters/DateFormatter.as |    0
 .../src/main/royale/mx/formatters/Formatter.as     |  806 +++----
 .../src/main/royale/mx/formatters/IFormatter.as    |  116 +-
 .../src/main/royale/mx/formatters/NumberBase.as    |    0
 .../royale/mx/formatters/NumberBaseRoundType.as    |    0
 .../main/royale/mx/formatters/NumberFormatter.as   | 1286 +++++------
 .../main/royale/mx/formatters/PhoneFormatter.as    |  802 +++----
 .../main/royale/mx/formatters/StringFormatter.as   |    0
 .../royale/mx/formatters/SwitchSymbolFormatter.as  |  302 +--
 .../main/royale/mx/formatters/ZipCodeFormatter.as  |    0
 .../src/main/royale/mx/geom/Matrix.as              |    0
 .../royale/mx/globalization/CurrencyParseResult.as |    0
 .../royale/mx/globalization/DateTimeFormatter.as   |    0
 .../royale/mx/globalization/DateTimeNameStyle.as   |    0
 .../main/royale/mx/globalization/DateTimeStyle.as  |    0
 .../royale/mx/globalization/LastOperationStatus.as |    0
 .../src/main/royale/mx/globalization/LocaleID.as   |    0
 .../royale/mx/globalization/NationalDigitsType.as  |    0
 .../royale/mx/globalization/NumberFormatter.as     |    0
 .../royale/mx/globalization/NumberParseResult.as   |    0
 .../supportClasses/GlobalizationBase.as            |    0
 .../src/main/royale/mx/logging/AbstractTarget.as   |    0
 .../src/main/royale/mx/logging/ILogger.as          |    0
 .../src/main/royale/mx/logging/ILoggingTarget.as   |    0
 .../src/main/royale/mx/logging/Log.as              |    0
 .../src/main/royale/mx/logging/LogEvent.as         |    0
 .../src/main/royale/mx/logging/LogEventLevel.as    |    0
 .../src/main/royale/mx/logging/LogLogger.as        |    0
 .../mx/logging/errors/InvalidCategoryError.as      |    0
 .../royale/mx/logging/errors/InvalidFilterError.as |    0
 .../mx/logging/targets/LineFormattedTarget.as      |    0
 .../main/royale/mx/logging/targets/TraceTarget.as  |    0
 .../src/main/royale/mx/managers/CursorManager.as   |  926 ++++----
 .../royale/mx/managers/CursorManagerPriority.as    |    0
 .../src/main/royale/mx/managers/ICursorManager.as  |    0
 .../src/main/royale/mx/managers/ISystemManager.as  |    0
 .../royale/mx/managers/SystemManagerGlobals.as     |    0
 .../main/royale/mx/messaging/AbstractConsumer.as   |    0
 .../main/royale/mx/messaging/AbstractProducer.as   |    0
 .../src/main/royale/mx/messaging/Channel.as        |    0
 .../src/main/royale/mx/messaging/ChannelSet.as     |    0
 .../src/main/royale/mx/messaging/Consumer.as       |    0
 .../mx/messaging/ConsumerMessageDispatcher.as      |    0
 .../src/main/royale/mx/messaging/MessageAgent.as   |    0
 .../main/royale/mx/messaging/MessageResponder.as   |    0
 .../src/main/royale/mx/messaging/Producer.as       |    0
 .../src/main/royale/mx/messaging/RoyaleClient.as   |    0
 .../royale/mx/messaging/channels/AMFChannel.as     |    0
 .../mx/messaging/channels/DirectHTTPChannel.as     |    0
 .../royale/mx/messaging/channels/HTTPChannel.as    |    0
 .../mx/messaging/channels/NetConnectionChannel.as  |    0
 .../royale/mx/messaging/channels/PollingChannel.as |    0
 .../mx/messaging/channels/SecureAMFChannel.as      |    0
 .../mx/messaging/channels/SecureHTTPChannel.as     |    0
 .../mx/messaging/channels/amfx/AMFXContext.as      |    0
 .../mx/messaging/channels/amfx/AMFXDecoder.as      |    0
 .../mx/messaging/channels/amfx/AMFXEncoder.as      |    0
 .../mx/messaging/channels/amfx/AMFXHeader.as       |    0
 .../mx/messaging/channels/amfx/AMFXResult.as       |    0
 .../main/royale/mx/messaging/config/ConfigMap.as   |    0
 .../royale/mx/messaging/config/LoaderConfig.as     |    0
 .../royale/mx/messaging/config/ServerConfig.as     |    0
 .../royale/mx/messaging/errors/ArgumentError.as    |    0
 .../royale/mx/messaging/errors/ChannelError.as     |    0
 .../mx/messaging/errors/InvalidChannelError.as     |    0
 .../mx/messaging/errors/InvalidDestinationError.as |    0
 .../messaging/errors/MessageSerializationError.as  |    0
 .../royale/mx/messaging/errors/MessagingError.as   |    0
 .../mx/messaging/errors/NoChannelAvailableError.as |    0
 .../royale/mx/messaging/events/ChannelEvent.as     |    0
 .../mx/messaging/events/ChannelFaultEvent.as       |    0
 .../royale/mx/messaging/events/MessageAckEvent.as  |    0
 .../royale/mx/messaging/events/MessageEvent.as     |    0
 .../mx/messaging/events/MessageFaultEvent.as       |    0
 .../mx/messaging/messages/AbstractMessage.as       |    0
 .../mx/messaging/messages/AcknowledgeMessage.as    |    0
 .../mx/messaging/messages/AcknowledgeMessageExt.as |    0
 .../royale/mx/messaging/messages/AsyncMessage.as   |    0
 .../mx/messaging/messages/AsyncMessageExt.as       |    0
 .../royale/mx/messaging/messages/CommandMessage.as |    0
 .../mx/messaging/messages/CommandMessageExt.as     |    0
 .../royale/mx/messaging/messages/ErrorMessage.as   |    0
 .../mx/messaging/messages/HTTPRequestMessage.as    |    0
 .../main/royale/mx/messaging/messages/IMessage.as  |    0
 .../royale/mx/messaging/messages/ISmallMessage.as  |    0
 .../messaging/messages/MessagePerformanceInfo.as   |    0
 .../messaging/messages/MessagePerformanceUtils.as  |    0
 .../mx/messaging/messages/RemotingMessage.as       |    0
 .../royale/mx/messaging/messages/SOAPMessage.as    |    0
 .../src/main/royale/mx/modules/IModule.as          |   74 +-
 .../src/main/royale/mx/modules/IModuleInfo.as      |    0
 .../src/main/royale/mx/net/FileFilter.as           |  132 +-
 .../src/main/royale/mx/net/FileReference.as        |    0
 .../src/main/royale/mx/net/FileReferenceList.as    |    0
 .../src/main/royale/mx/net/LocalConnection.as      |    0
 .../src/main/royale/mx/net/NetConnection.as        |    0
 .../src/main/royale/mx/net/ObjectEncoding.as       |    0
 .../src/main/royale/mx/net/Responder.as            |    0
 .../src/main/royale/mx/net/SharedObject.as         |    0
 .../main/royale/mx/net/SharedObjectFlushStatus.as  |    0
 .../src/main/royale/mx/net/SharedObjectJSON.as     |    0
 .../src/main/royale/mx/net/Socket.as               |    0
 .../src/main/royale/mx/net/URLLoader.as            |    0
 .../src/main/royale/mx/net/URLLoaderDataFormat.as  |    0
 .../src/main/royale/mx/net/URLRequestMethod.as     |    0
 .../mx/net/beads/FileUploaderUsingFormData.as      |    0
 .../mx/net/supportClasses/ByteArrayFileLoader.as   |    0
 .../src/main/royale/mx/netmon/NetworkMonitor.as    |    0
 .../main/royale/mx/resources/IResourceBundle.as    |    0
 .../main/royale/mx/resources/IResourceManager.as   |    0
 .../src/main/royale/mx/resources/Locale.as         |    0
 .../src/main/royale/mx/resources/LocaleSorter.as   |    0
 .../src/main/royale/mx/resources/ResourceBundle.as |    0
 .../main/royale/mx/resources/ResourceManager.as    |    0
 .../royale/mx/resources/ResourceManagerImpl.as     |    0
 .../src/main/royale/mx/rpc/AbstractInvoker.as      |    0
 .../src/main/royale/mx/rpc/AbstractOperation.as    |    0
 .../src/main/royale/mx/rpc/AbstractService.as      |    0
 .../src/main/royale/mx/rpc/ActiveCalls.as          |    0
 .../src/main/royale/mx/rpc/AsyncDispatcher.as      |    0
 .../src/main/royale/mx/rpc/AsyncRequest.as         |    0
 .../src/main/royale/mx/rpc/AsyncResponder.as       |  264 +--
 .../src/main/royale/mx/rpc/AsyncToken.as           |    0
 .../src/main/royale/mx/rpc/CallResponder.as        |    0
 .../src/main/royale/mx/rpc/Fault.as                |    0
 .../src/main/royale/mx/rpc/IResponder.as           |    0
 .../src/main/royale/mx/rpc/Responder.as            |    0
 .../src/main/royale/mx/rpc/events/AbstractEvent.as |    0
 .../src/main/royale/mx/rpc/events/FaultEvent.as    |    0
 .../src/main/royale/mx/rpc/events/HeaderEvent.as   |    0
 .../src/main/royale/mx/rpc/events/InvokeEvent.as   |    0
 .../src/main/royale/mx/rpc/events/ResultEvent.as   |    0
 .../main/royale/mx/rpc/events/SchemaLoadEvent.as   |    0
 .../src/main/royale/mx/rpc/events/WSDLLoadEvent.as |    0
 .../src/main/royale/mx/rpc/events/XMLLoadEvent.as  |    0
 .../main/royale/mx/rpc/http/AbstractOperation.as   |    0
 .../main/royale/mx/rpc/http/HTTPMultiService.as    |    0
 .../src/main/royale/mx/rpc/http/HTTPService.as     | 2034 ++++++++---------
 .../src/main/royale/mx/rpc/http/Operation.as       |    0
 .../main/royale/mx/rpc/http/SerializationFilter.as |    0
 .../main/royale/mx/rpc/http/mxml/HTTPService.as    |  374 ++--
 .../src/main/royale/mx/rpc/mxml/Concurrency.as     |    0
 .../src/main/royale/mx/rpc/mxml/IMXMLSupport.as    |    0
 .../mx/rpc/remoting/CompressedRemoteObject.as      |    0
 .../src/main/royale/mx/rpc/remoting/Operation.as   |    0
 .../main/royale/mx/rpc/remoting/RemoteObject.as    |    0
 .../mx/rpc/remoting/mxml/CompressedRemoteObject.as |    0
 .../main/royale/mx/rpc/remoting/mxml/Operation.as  |    0
 .../royale/mx/rpc/remoting/mxml/RemoteObject.as    |    0
 .../main/royale/mx/rpc/soap/AbstractWebService.as  |    0
 .../src/main/royale/mx/rpc/soap/ISOAPDecoder.as    |    0
 .../src/main/royale/mx/rpc/soap/ISOAPEncoder.as    |    0
 .../src/main/royale/mx/rpc/soap/LoadEvent.as       |    0
 .../src/main/royale/mx/rpc/soap/Operation.as       |    0
 .../src/main/royale/mx/rpc/soap/SOAPConstants.as   |    0
 .../src/main/royale/mx/rpc/soap/SOAPDecoder.as     |    0
 .../src/main/royale/mx/rpc/soap/SOAPEncoder.as     |    0
 .../src/main/royale/mx/rpc/soap/SOAPFault.as       |    0
 .../src/main/royale/mx/rpc/soap/SOAPHeader.as      |    0
 .../src/main/royale/mx/rpc/soap/SOAPResult.as      |    0
 .../src/main/royale/mx/rpc/soap/WebService.as      |    0
 .../src/main/royale/mx/rpc/soap/mxml/Operation.as  |    0
 .../src/main/royale/mx/rpc/soap/mxml/WebService.as |    0
 .../royale/mx/rpc/soap/types/ApacheDocumentType.as |    0
 .../main/royale/mx/rpc/soap/types/DataSetType.as   |    0
 .../royale/mx/rpc/soap/types/ICustomSOAPType.as    |    0
 .../src/main/royale/mx/rpc/soap/types/MapType.as   |    0
 .../main/royale/mx/rpc/soap/types/QueryBeanType.as |    0
 .../main/royale/mx/rpc/soap/types/RowSetType.as    |    0
 .../main/royale/mx/rpc/soap/types/SOAPArrayType.as |    0
 .../src/main/royale/mx/rpc/wsdl/WSDL.as            |    0
 .../src/main/royale/mx/rpc/wsdl/WSDLBinding.as     |    0
 .../src/main/royale/mx/rpc/wsdl/WSDLConstants.as   |    0
 .../src/main/royale/mx/rpc/wsdl/WSDLEncoding.as    |    0
 .../src/main/royale/mx/rpc/wsdl/WSDLLoader.as      |    0
 .../src/main/royale/mx/rpc/wsdl/WSDLMessage.as     |    0
 .../src/main/royale/mx/rpc/wsdl/WSDLMessagePart.as |    0
 .../src/main/royale/mx/rpc/wsdl/WSDLOperation.as   |    0
 .../src/main/royale/mx/rpc/wsdl/WSDLPort.as        |    0
 .../src/main/royale/mx/rpc/wsdl/WSDLPortType.as    |    0
 .../src/main/royale/mx/rpc/wsdl/WSDLService.as     |    0
 .../src/main/royale/mx/rpc/xml/ComplexString.as    |    0
 .../src/main/royale/mx/rpc/xml/ContentProxy.as     |    0
 .../src/main/royale/mx/rpc/xml/DecodingContext.as  |    0
 .../src/main/royale/mx/rpc/xml/IXMLDecoder.as      |    0
 .../src/main/royale/mx/rpc/xml/IXMLEncoder.as      |    0
 .../main/royale/mx/rpc/xml/IXMLSchemaInstance.as   |    0
 .../src/main/royale/mx/rpc/xml/NamespaceUtil.as    |    0
 .../royale/mx/rpc/xml/QualifiedResourceManager.as  |    0
 .../src/main/royale/mx/rpc/xml/Schema.as           |    0
 .../src/main/royale/mx/rpc/xml/SchemaConstants.as  |    0
 .../src/main/royale/mx/rpc/xml/SchemaDatatypes.as  |    0
 .../src/main/royale/mx/rpc/xml/SchemaLoader.as     |    0
 .../src/main/royale/mx/rpc/xml/SchemaManager.as    |    0
 .../src/main/royale/mx/rpc/xml/SchemaMarshaller.as |    0
 .../src/main/royale/mx/rpc/xml/SchemaProcessor.as  |    0
 .../main/royale/mx/rpc/xml/SchemaTypeRegistry.as   |    0
 .../src/main/royale/mx/rpc/xml/SimpleContent.as    |    0
 .../src/main/royale/mx/rpc/xml/SimpleXMLDecoder.as |    0
 .../src/main/royale/mx/rpc/xml/SimpleXMLEncoder.as |    0
 .../src/main/royale/mx/rpc/xml/TypeIterator.as     |    0
 .../src/main/royale/mx/rpc/xml/XMLDecoder.as       |    0
 .../src/main/royale/mx/rpc/xml/XMLEncoder.as       |    0
 .../src/main/royale/mx/rpc/xml/XMLLoader.as        |    0
 .../src/main/royale/mx/system/ApplicationDomain.as |    0
 .../src/main/royale/mx/system/Capabilities.as      |    0
 .../src/main/royale/mx/system/Security.as          |    0
 .../src/main/royale/mx/system/System.as            |    0
 .../src/main/royale/mx/utils/ArrayUtil.as          |    0
 .../src/main/royale/mx/utils/Base64Decoder.as      |    0
 .../src/main/royale/mx/utils/Base64Encoder.as      |    0
 .../src/main/royale/mx/utils/BitFlagUtil.as        |    0
 .../src/main/royale/mx/utils/ByteArray.as          |    0
 .../src/main/royale/mx/utils/DescribeTypeCache.as  |    0
 .../src/main/royale/mx/utils/Endian.as             |    0
 .../src/main/royale/mx/utils/HexDecoder.as         |    0
 .../src/main/royale/mx/utils/HexEncoder.as         |    0
 .../src/main/royale/mx/utils/IXMLNotifiable.as     |    0
 .../src/main/royale/mx/utils/NameUtil.as           |    2 +-
 .../src/main/royale/mx/utils/ObjectProxy.as        |    0
 .../src/main/royale/mx/utils/ObjectUtil.as         |    0
 .../src/main/royale/mx/utils/RPCObjectUtil.as      |    0
 .../src/main/royale/mx/utils/RPCStringUtil.as      |    0
 .../src/main/royale/mx/utils/RPCUIDUtil.as         |    0
 .../src/main/royale/mx/utils/StringUtil.as         |    0
 .../src/main/royale/mx/utils/Timer.as              |    0
 .../src/main/royale/mx/utils/UIDUtil.as            |    0
 .../src/main/royale/mx/utils/URLUtil.as            |    0
 .../src/main/royale/mx/utils/XMLNotifier.as        |    0
 .../src/main/royale/mx/utils/XMLUtil.as            |    0
 .../src/main/royale/mx/utils/object_proxy.as       |    0
 .../src/main/royale/mx/validators/DateValidator.as |  722 +++---
 .../main/royale/mx/validators/EmailValidator.as    | 1678 +++++++-------
 .../src/main/royale/mx/validators/IValidator.as    |    0
 .../royale/mx/validators/IValidatorListener.as     |    0
 .../main/royale/mx/validators/NumberValidator.as   | 2324 ++++++++++----------
 .../mx/validators/NumberValidatorDomainType.as     |    0
 .../royale/mx/validators/PhoneNumberValidator.as   |  370 ++--
 .../royale/mx/validators/RegExpValidationResult.as |   14 +-
 .../main/royale/mx/validators/RegExpValidator.as   |  884 ++++----
 .../main/royale/mx/validators/StringValidator.as   |  774 +++----
 .../main/royale/mx/validators/ValidationResult.as  |    4 +-
 .../src/main/royale/mx/validators/Validator.as     |    0
 .../main/royale/mx/validators/ZipCodeValidator.as  |    0
 .../mx/validators/ZipCodeValidatorDomainType.as    |    0
 .../royale/FlexUnitRoyaleApplication-config.xml    |   12 +-
 .../src/test/royale/FlexUnitRoyaleApplication.mxml |    0
 .../src/test/royale/build.xml                      |    8 +-
 .../test/royale/flexUnitTests/MXRoyaleTester.as    |    0
 .../flexUnitTests/mxroyale/CollectionsTest.as      |    0
 .../mxroyale/FlexSDK_ObjectUtil_Compare_Tests.as   |    0
 .../FlexSDK_ObjectUtil_FLEX_34852_Tests.as         |    0
 .../mxroyale/FlexSDK_ObjectUtil_Tests.as           |    0
 .../flexUnitTests/mxroyale/ObjectUtilTest.as       |    0
 .../flexUnitTests/mxroyale/support/ACTestOne.as    |    0
 .../flexUnitTests/mxroyale/support/ACTestTwo.as    |    0
 .../flexUnitTests/mxroyale/support/TestClass1.as   |    0
 .../flexUnitTests/mxroyale/support/TestClass2.as   |    0
 .../flexUnitTests/mxroyale/support/TestClass3.as   |    0
 .../flexUnitTests/mxroyale/support/TestClass4.as   |    0
 .../flexUnitTests/mxroyale/support/TestClass5.as   |    0
 .../flexUnitTests/mxroyale/support/TestClass6.as   |    0
 .../mxroyale/support/testnamespace.as              |    0
 frameworks/projects/pom.xml                        |    1 +
 370 files changed, 10260 insertions(+), 9601 deletions(-)

diff --git a/frameworks/build.xml b/frameworks/build.xml
index 4b39714..e1852e3 100644
--- a/frameworks/build.xml
+++ b/frameworks/build.xml
@@ -149,6 +149,7 @@
 		<antcall target="FontAwesome"/>
 		<antcall target="Express"/>
         <antcall target="RoyaleSite"/>
+        <antcall target="MXRoyaleBase"/>
         <antcall target="MXRoyale"/>
         <antcall target="SparkRoyale"/>
         <antcall target="Crux"/>
@@ -190,6 +191,7 @@
         <antcall target="FontAwesomeTest"/>
         <antcall target="ExpressTest"/>
         <antcall target="RoyaleSiteTest"/>
+        <antcall target="MXRoyaleBaseTest"/>
         <antcall target="MXRoyaleTest"/>
         <antcall target="SparkRoyaleTest"/>
         <antcall target="CruxTest"/>
@@ -250,6 +252,7 @@
         <ant dir="${basedir}/projects/Text" target="clean"/>
         <ant dir="${basedir}/projects/TLF" target="clean"/>
         <ant dir="${basedir}/projects/RoyaleSite" target="clean"/>
+        <ant dir="${basedir}/projects/MXRoyaleBase" target="clean"/>
         <ant dir="${basedir}/projects/MXRoyale" target="clean"/>
         <ant dir="${basedir}/projects/SparkRoyale" target="clean"/>
         <ant dir="${basedir}/projects/Crux" target="clean"/>
@@ -523,6 +526,14 @@
         <ant dir="${basedir}/projects/RoyaleSite" target="test"/>
     </target>
 
+    <target name="MXRoyaleBase" description="Clean build of MXRoyaleBase.swc">
+        <ant dir="${basedir}/projects/MXRoyaleBase"/>
+    </target>
+
+    <target name="MXRoyaleBaseTest" description="Test of MXRoyaleBase.swc">
+        <ant dir="${basedir}/projects/MXRoyaleBase" target="test"/>
+    </target>
+
     <target name="MXRoyale" description="Clean build of MXRoyale.swc">
         <ant dir="${basedir}/projects/MXRoyale"/>
     </target>
diff --git a/frameworks/js/build.xml b/frameworks/js/build.xml
index 5e36817..db108c4 100644
--- a/frameworks/js/build.xml
+++ b/frameworks/js/build.xml
@@ -102,6 +102,7 @@
 		<antcall target="MaterialDesignLite"/>
         <antcall target="Icons" />
         <antcall target="Jewel"/>
+        <antcall target="MXRoyaleBase"/>
         <antcall target="MXRoyale"/>
         <antcall target="SparkRoyale"/>
         <antcall target="Crux"/>
@@ -158,6 +159,7 @@
         <ant dir="${basedir}/projects/XMLJS" target="clean"/>
         <ant dir="${basedir}/projects/IconsJS" target="clean"/>
         <ant dir="${basedir}/projects/JewelJS" target="clean"/>
+        <ant dir="${basedir}/projects/MXRoyaleBaseJS" target="clean"/>
         <ant dir="${basedir}/projects/MXRoyaleJS" target="clean"/>
         <ant dir="${basedir}/projects/CruxJS" target="clean"/>
         <ant dir="${basedir}/projects/SparkRoyaleJS" target="clean"/>
@@ -276,6 +278,10 @@
         <ant dir="${basedir}/projects/JewelJS"/>
     </target>
 
+    <target name="MXRoyaleBase" description="Clean build of MXRoyaleBaseJS.swc">
+        <ant dir="${basedir}/projects/MXRoyaleBaseJS"/>
+    </target>
+
     <target name="MXRoyale" description="Clean build of MXRoyaleJS.swc">
         <ant dir="${basedir}/projects/MXRoyaleJS"/>
     </target>
diff --git a/frameworks/js/projects/MXRoyaleBaseJS/build.xml b/frameworks/js/projects/MXRoyaleBaseJS/build.xml
new file mode 100644
index 0000000..704c328
--- /dev/null
+++ b/frameworks/js/projects/MXRoyaleBaseJS/build.xml
@@ -0,0 +1,138 @@
+<?xml version="1.0"?>
+<!--
+
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+
+-->
+
+
+<project name="MXRoyaleBaseJS" default="main" basedir=".">
+    <property name="ROYALE_HOME" location="../../../.."/>
+    
+    <property file="${ROYALE_HOME}/env.properties"/>
+    <property environment="env"/>
+    <property file="${ROYALE_HOME}/local.properties"/>
+    <property file="${ROYALE_HOME}/build.properties"/>
+    <property name="ROYALE_HOME" value="${ROYALE_HOME}"/>
+    
+    <property name="target.name" value="${ant.project.name}.swc" />
+    <tstamp>
+        <format property="royale.swc-date" pattern="MM/dd/yy HH:mm Z"/>
+    </tstamp>
+    <echo>swc-date is ${royale.swc-date}</echo>
+
+    <echo file="${basedir}/${target.name}.properties">target.name.nojs=${ant.project.name}</echo>
+    <replaceregexp file="${basedir}/${target.name}.properties" match="(.*)JS$" replace="\1" flags="m" />
+    <property file="${basedir}/${target.name}.properties"/>
+    <delete file="${basedir}/${target.name}.properties"/>
+    
+    <target name="main" depends="clean,check-compiler,compile" description="Full build of ${ant.project.name}.swc">
+    </target>
+    
+    <target name="check-for-tests" >
+        <condition property="skip-tests" >
+            <not>
+                <available file="${basedir}/src/test/royale/build.xml" />
+            </not>
+        </condition>
+    </target>
+    
+    <target name="test" depends="check-for-tests,check-compiler" unless="skip-tests">
+        <ant dir="src/test/royale" />
+    </target>
+    
+    <target name="clean">
+        <delete failonerror="false">
+            <fileset dir="${ROYALE_HOME}/frameworks/js/libs">
+                <include name="${target.name}"/>
+            </fileset>
+        </delete>
+        <delete failonerror="false" includeemptydirs="true">
+            <fileset dir="${basedir}/target">
+                <include name="**/**"/>
+            </fileset>
+        </delete>
+        <antcall target="clean-tests" />
+    </target>
+    
+    <target name="clean-tests" depends="check-for-tests" unless="skip-tests">
+        <ant dir="src/test/royale" target="clean"/>
+    </target>
+    
+    <target name="compile" depends="check-compiler">
+        <echo message="Cross-compiling ${target.name}"/>
+        <echo message="ROYALE_COMPILER_HOME: ${ROYALE_COMPILER_HOME}"/>
+        <mkdir dir="${basedir}/target/generated-sources/royale"/>
+        <java jar="${ROYALE_COMPILER_HOME}/lib/compc.jar" fork="true" >
+            <jvmarg value="-Xmx384m" />
+            <jvmarg value="-Dsun.io.useCanonCaches=false" />
+            <jvmarg value="-Droyalelib=${ROYALE_HOME}/frameworks" />
+            <arg value="+royalelib=${ROYALE_HOME}/frameworks" />
+            <arg value="-compiler.define+=ROYALE::DISPLAYOBJECT,IUIComponent" />
+            <arg value="-compiler.define+=GOOG::DEBUG,goog.DEBUG" />
+            <arg value="-compiler.strict-xml=true" />
+            <arg value="-compiler.targets=SWF,JSRoyale" />
+            <arg line="-metadata.date=&quot;${royale.swc-date}&quot;" />
+            <arg line="-metadata.dateFormat=&quot;MM/dd/yy HH:mm Z&quot;" />
+            <arg line="-swf-debugfile-alias=&quot;/org/apache/royale/${release.version}&quot;" />
+            <arg value="-output=${basedir}/target/${target.name}" />
+            <arg value="-load-config=${ROYALE_HOME}/frameworks/js-config.xml" />
+            <arg value="-load-config+=${basedir}/src/main/config/compile-js-config.xml" />
+        </java>
+        <copy file="${basedir}/target/${target.name}" tofile="${ROYALE_HOME}/frameworks/js/libs/${target.name}" />
+    </target>
+    
+    <target name="copy-js" >
+        <mkdir dir="${ROYALE_HOME}/frameworks/js/generated-sources"/>
+        <copy todir="${ROYALE_HOME}/frameworks/js/generated-sources">
+            <fileset dir="${basedir}/target/generated-sources/royale">
+                <include name="**/**" />
+            </fileset>
+        </copy>
+    </target>
+    
+    <target name="check-compiler" depends="check-compiler-home,check-transpiler-home">
+        <path id="lib.path">
+            <fileset dir="${ROYALE_COMPILER_HOME}/lib" includes="compiler-royaleTasks.jar"/>
+        </path>
+        <taskdef resource="flexTasks.tasks" classpathref="lib.path"/>
+    </target>
+    
+    <target name="check-compiler-home"
+        description="Set ROYALE_SWF_COMPILER_HOME to point at the compiler.">
+        
+        <available file="${ROYALE_HOME}/lib/compiler-mxmlc.jar"
+        type="file"
+        property="ROYALE_SWF_COMPILER_HOME"
+        value="${ROYALE_HOME}"/>
+        
+        <fail message="ROYALE_SWF_COMPILER_HOME must be set to a folder with a lib sub-folder containing compiler-mxmlc.jar such as the compiler folder in royale-compiler repo or the root of a Royale SDK"
+        unless="ROYALE_SWF_COMPILER_HOME"/>
+    </target>
+    
+    <target name="check-transpiler-home"
+        description="Set ROYALE_COMPILER_HOME to point at the cross-compiler.">
+        
+        <available file="${ROYALE_HOME}/js/lib/jsc.jar"
+        type="file"
+        property="ROYALE_COMPILER_HOME"
+        value="${ROYALE_HOME}/js"/>
+        
+        <fail message="ROYALE_COMPILER_HOME must be set to a folder with a lib sub-folder containing jsc.jar such as the compiler-jx folder in royale-compiler repo or the js folder of a Royale SDK"
+        unless="ROYALE_COMPILER_HOME"/>
+    </target>
+    
+</project>
diff --git a/frameworks/js/projects/MXRoyaleJS/src/main/config/compile-js-config.xml b/frameworks/js/projects/MXRoyaleBaseJS/src/main/config/compile-js-config.xml
similarity index 67%
copy from frameworks/js/projects/MXRoyaleJS/src/main/config/compile-js-config.xml
copy to frameworks/js/projects/MXRoyaleBaseJS/src/main/config/compile-js-config.xml
index e906ba0..0a1daef 100644
--- a/frameworks/js/projects/MXRoyaleJS/src/main/config/compile-js-config.xml
+++ b/frameworks/js/projects/MXRoyaleBaseJS/src/main/config/compile-js-config.xml
@@ -67,7 +67,7 @@
             <path-element>../../../../../libs/FormattersJS.swc</path-element>
             <path-element>../../../../../libs/GraphicsJS.swc</path-element>
             <path-element>../../../../../libs/ChartsJS.swc</path-element>
-	          <path-element>../../../../../libs/NetworkJS.swc</path-element>
+            <path-element>../../../../../libs/NetworkJS.swc</path-element>
             <path-element>../../../../../libs/ReflectionJS.swc</path-element>
             <path-element>../../../../../libs/XMLJS.swc</path-element>
         </external-library-path>
@@ -79,12 +79,12 @@
             </namespace>
             <namespace>
                 <uri>library://ns.apache.org/royale/mx</uri>
-                <manifest>../../../../../../projects/MXRoyale/src/main/resources/mx-royale-manifest.xml</manifest>
+                <manifest>../../../../../../projects/MXRoyaleBase/src/main/resources/mx-royale-manifest.xml</manifest>
             </namespace>
         </namespaces>
         
         <source-path>
-            <path-element>../../../../../../projects/MXRoyale/src/main/royale</path-element>
+            <path-element>../../../../../../projects/MXRoyaleBase/src/main/royale</path-element>
         </source-path>
         
         <warn-no-constructor>false</warn-no-constructor>
@@ -98,45 +98,10 @@
     
     <export-protected-symbols>true</export-protected-symbols>
     
-    <include-file>
-        <name>defaults.css</name>
-        <path>../../../../../../projects/MXRoyale/src/main/resources/defaults.css</path>
-    </include-file>
-    <include-file>
-        <name>assets/icon_align_center.png</name>
-        <path>../../../../../../projects/MXRoyale/src/main/resources/assets/icon_align_center.png</path>
-    </include-file>
-    <include-file>
-        <name>assets/icon_align_justify.png</name>
-        <path>../../../../../../projects/MXRoyale/src/main/resources/assets/icon_align_justify.png</path>
-    </include-file>
-    <include-file>
-        <name>assets/icon_align_left.png</name>
-        <path>../../../../../../projects/MXRoyale/src/main/resources/assets/icon_align_left.png</path>
-    </include-file>
-    <include-file>
-        <name>assets/icon_align_right.png</name>
-        <path>../../../../../../projects/MXRoyale/src/main/resources/assets/icon_align_right.png</path>
-    </include-file>
-    <include-file>
-        <name>assets/icon_bullet.png</name>
-        <path>../../../../../../projects/MXRoyale/src/main/resources/assets/icon_bullet.png</path>
-    </include-file>
-    <include-file>
-        <name>assets/icon_style_bold.png</name>
-        <path>../../../../../../projects/MXRoyale/src/main/resources/assets/icon_style_bold.png</path>
-    </include-file>
-    <include-file>
-        <name>assets/icon_style_italic.png</name>
-        <path>../../../../../../projects/MXRoyale/src/main/resources/assets/icon_style_italic.png</path>
-    </include-file>
-    <include-file>
-        <name>assets/icon_style_underline.png</name>
-        <path>../../../../../../projects/MXRoyale/src/main/resources/assets/icon_style_underline.png</path>
-    </include-file>
+
     
     <include-classes>
-        <class>MXRoyaleClasses</class>
+        <class>MXRoyaleBaseClasses</class>
     </include-classes>
     
     <include-namespaces>
diff --git a/frameworks/js/projects/MXRoyaleJS/src/test/royale/build.xml b/frameworks/js/projects/MXRoyaleBaseJS/src/test/royale/build.xml
similarity index 96%
rename from frameworks/js/projects/MXRoyaleJS/src/test/royale/build.xml
rename to frameworks/js/projects/MXRoyaleBaseJS/src/test/royale/build.xml
index 826afb7..48687e2 100644
--- a/frameworks/js/projects/MXRoyaleJS/src/test/royale/build.xml
+++ b/frameworks/js/projects/MXRoyaleBaseJS/src/test/royale/build.xml
@@ -19,7 +19,7 @@
 -->
 
 
-<project name="MXRoyaleJS.test" default="main" basedir=".">
+<project name="MXRoyaleBaseJS.test" default="main" basedir=".">
     <property name="ROYALE_HOME" location="../../../../../../.."/>
     
     <property file="${ROYALE_HOME}/env.properties"/>
@@ -28,7 +28,7 @@
     <property file="${ROYALE_HOME}/build.properties"/>
     <property name="ROYALE_HOME" value="${env.ROYALE_HOME}"/>
     <property name="ROYALE_SWF_COMPILER_HOME" value="${env.ROYALE_SWF_COMPILER_HOME}"/>
-    <property name="target.name" value="MXRoyaleJS-${release.version}.swc" />
+    <property name="target.name" value="MXRoyaleBaseJS-${release.version}.swc" />
 
     <!--
         Windows browser:
@@ -135,16 +135,16 @@
             into the file bundles.properties in this directory.
         -->
         <mxmlc fork="true"
-            file="${basedir}/../../../../../../projects/MXRoyale/src/test/royale/FlexUnitRoyaleApplication.mxml">
+            file="${basedir}/../../../../../../projects/MXRoyaleBase/src/test/royale/FlexUnitRoyaleApplication.mxml">
             <jvmarg line="${mxmlc.jvm.args}"/>
             <!--
             <jvmarg value="-Xdebug" />
             <jvmarg value="-Xnoagent" />
             <jvmarg value="-Xrunjdwp:transport=dt_socket,address=8763,server=y,suspend=y" />
              -->
-            <arg value="-compiler.exclude-defaults-css-files=MXRoyale-0.9.7-SNAPSHOT-js.swc:defaults.css" />
+            <!--<arg value="-compiler.exclude-defaults-css-files=MXRoyale-0.9.7-SNAPSHOT-js.swc:defaults.css" />
             <arg value="-compiler.exclude-defaults-css-files=MXRoyale-0.9.7-SNAPSHOT-swf.swc:defaults.css" />
-            <arg value="-compiler.exclude-defaults-css-files=MXRoyaleJS.swc:defaults.css" />
+            <arg value="-compiler.exclude-defaults-css-files=MXRoyaleJS.swc:defaults.css" />-->
            <!-- <arg value="-debug" />-->
             <arg value="-compiler.targets=JSRoyale" />
             <arg value="-js-output=target" />
diff --git a/frameworks/js/projects/MXRoyaleJS/src/main/config/compile-js-config.xml b/frameworks/js/projects/MXRoyaleJS/src/main/config/compile-js-config.xml
index e906ba0..ed06bdc 100644
--- a/frameworks/js/projects/MXRoyaleJS/src/main/config/compile-js-config.xml
+++ b/frameworks/js/projects/MXRoyaleJS/src/main/config/compile-js-config.xml
@@ -81,10 +81,17 @@
                 <uri>library://ns.apache.org/royale/mx</uri>
                 <manifest>../../../../../../projects/MXRoyale/src/main/resources/mx-royale-manifest.xml</manifest>
             </namespace>
+            <!-- include MXRoyaleBase definitions -->
+            <namespace>
+                <uri>library://ns.apache.org/royale/mx</uri>
+                <manifest>../../../../../../projects/MXRoyaleBase/src/main/resources/mx-royale-manifest.xml</manifest>
+            </namespace>
         </namespaces>
         
         <source-path>
             <path-element>../../../../../../projects/MXRoyale/src/main/royale</path-element>
+            <!-- include MXRoyaleBase sources -->
+            <path-element>../../../../../../projects/MXRoyaleBase/src/main/royale</path-element>
         </source-path>
         
         <warn-no-constructor>false</warn-no-constructor>
diff --git a/frameworks/projects/MXRoyale/asconfig.json b/frameworks/projects/MXRoyale/asconfig.json
index 75bb785..2718715 100644
--- a/frameworks/projects/MXRoyale/asconfig.json
+++ b/frameworks/projects/MXRoyale/asconfig.json
@@ -30,7 +30,8 @@
             "src/main/royale"
         ],
         "source-path": [
-            "src/main/royale"
+            "src/main/royale",
+            "../MXRoyaleBase/src/main/royale"
         ],
         "external-library-path": [
             "../../../../frameworks/libs/air/airglobal.swc"
diff --git a/frameworks/projects/MXRoyale/pom.xml b/frameworks/projects/MXRoyale/pom.xml
index 6423666..a4edaa3 100644
--- a/frameworks/projects/MXRoyale/pom.xml
+++ b/frameworks/projects/MXRoyale/pom.xml
@@ -31,6 +31,10 @@
 
   <name>Apache Royale: Framework: Libs: MXRoyale</name>
 
+  <properties>
+      <mxroyale.base>${project.basedir}/../MXRoyaleBase</mxroyale.base>
+  </properties>
+
   <build>
     <sourceDirectory>src/main/royale</sourceDirectory>
     <plugins>
@@ -45,6 +49,10 @@
               <uri>library://ns.apache.org/royale/mx</uri>
               <manifest>${project.basedir}/src/main/resources/mx-royale-manifest.xml</manifest>
             </namespace>
+            <namespace>
+              <uri>library://ns.apache.org/royale/mx</uri>
+              <manifest>${mxroyale.base}/src/main/resources/mx-royale-manifest.xml</manifest>
+            </namespace>
           </namespaces>
           <includeClasses>
             <includeClass>MXRoyaleClasses</includeClass>
@@ -123,8 +131,10 @@
               -namespace+=http://ns.adobe.com/mxml/2009,${project.basedir}/../../mxml-2009-manifest.xml;
               -compiler.js-namespaces.namespace+=http://ns.adobe.com/mxml/2009,${project.basedir}/../../mxml-2009-manifest.xml;
               -compiler.js-namespaces.namespace+=library://ns.apache.org/royale/mx,${project.basedir}/src/main/resources/mx-royale-manifest.xml;
+              -compiler.js-namespaces.namespace+=library://ns.apache.org/royale/mx,${mxroyale.base}/src/main/resources/mx-royale-manifest.xml;
               -compiler.warn-instance-of-changes=false;
               -compiler.warn-this-within-closure=false;
+              -source-path+=${mxroyale.base}/src/main/royale;
           </additionalCompilerOptions>
         </configuration>
       </plugin>
@@ -133,6 +143,15 @@
   </build>
   
   <dependencies>
+    <!--
+    Note: this is not needed, because we are linking in the source code directly
+    <dependency>
+      <groupId>org.apache.royale.framework</groupId>
+      <artifactId>MXRoyaleBase</artifactId>
+      <version>0.9.9-SNAPSHOT</version>
+      <type>swc</type>
+      <classifier>js</classifier>
+    </dependency>-->
     <dependency>
       <groupId>org.apache.royale.framework</groupId>
       <artifactId>Binding</artifactId>
@@ -230,6 +249,15 @@
     <profile>
       <id>option-with-swf</id>
       <dependencies>
+        <!--
+        Note: this is not needed, because we are linking in the source code directly
+        <dependency>
+          <groupId>org.apache.royale.framework</groupId>
+          <artifactId>MXRoyaleBase</artifactId>
+          <version>0.9.9-SNAPSHOT</version>
+          <type>swc</type>
+          <classifier>swf</classifier>
+        </dependency>-->
         <dependency>
           <groupId>org.apache.royale.framework</groupId>
           <artifactId>Binding</artifactId>
@@ -325,4 +353,4 @@
     </profile>
   </profiles>
 
-<properties /></project>
+</project>
diff --git a/frameworks/projects/MXRoyale/src/main/config/compile-swf-config.xml b/frameworks/projects/MXRoyale/src/main/config/compile-swf-config.xml
index 51ae658..19c8d72 100644
--- a/frameworks/projects/MXRoyale/src/main/config/compile-swf-config.xml
+++ b/frameworks/projects/MXRoyale/src/main/config/compile-swf-config.xml
@@ -40,7 +40,7 @@
             <path-element>../../../../../libs/Effects.swc</path-element>
             <path-element>../../../../../libs/Express.swc</path-element>
             <path-element>../../../../../libs/Charts.swc</path-element>
-	          <path-element>../../../../../libs/Network.swc</path-element>
+            <path-element>../../../../../libs/Network.swc</path-element>
             <path-element>../../../../../libs/Reflection.swc</path-element>
         </external-library-path>
         
@@ -82,6 +82,11 @@
                 <uri>library://ns.apache.org/royale/mx</uri>
                 <manifest>../resources/mx-royale-manifest.xml</manifest>
             </namespace>
+            <!-- include MXRoyaleBase definitions -->
+            <namespace>
+                <uri>library://ns.apache.org/royale/mx</uri>
+                <manifest>../../../../MXRoyaleBase/src/main/resources/mx-royale-manifest.xml</manifest>
+            </namespace>
             <namespace>
                 <uri>library://ns.apache.org/royale/mx</uri>
                 <manifest>../resources/mx-royale-as-manifest.xml</manifest>
@@ -90,6 +95,8 @@
         
         <source-path>
             <path-element>../royale</path-element>
+            <!-- include MXRoyaleBase sources -->
+            <path-element>../../../../MXRoyaleBase/src/main/royale</path-element>
         </source-path>
         
         <warn-no-constructor>false</warn-no-constructor>
diff --git a/frameworks/projects/MXRoyale/src/main/resources/mx-royale-manifest.xml b/frameworks/projects/MXRoyale/src/main/resources/mx-royale-manifest.xml
index 445d81e..01a501b 100644
--- a/frameworks/projects/MXRoyale/src/main/resources/mx-royale-manifest.xml
+++ b/frameworks/projects/MXRoyale/src/main/resources/mx-royale-manifest.xml
@@ -64,16 +64,11 @@
     <component id="TileList" class="mx.controls.TileList"/>
     <component id="PopUpMenuButton" class="mx.controls.PopUpMenuButton"/>
 	<component id="ColorPicker" class="mx.controls.ColorPicker"/>
-	<component id="CompressedRemoteObject" class="mx.rpc.remoting.mxml.CompressedRemoteObject" />
-	<component id="RemoteObject" class="mx.rpc.remoting.mxml.RemoteObject" />
-    <component id="RemoteObjectOperation" class="mx.rpc.remoting.mxml.Operation"/>
-	<component id="HTTPService" class="mx.rpc.http.mxml.HTTPService" />
-    <component id="WebService" class="mx.rpc.soap.mxml.WebService" />
-    <component id="WebServiceOperation" class="mx.rpc.soap.mxml.Operation" />
-	<component id="NumberValidator" class="mx.validators.NumberValidator"/>
+
+	<!--<component id="NumberValidator" class="mx.validators.NumberValidator"/>
 	<component id="PhoneNumberValidator" class="mx.validators.PhoneNumberValidator"/>
 	<component id="DateValidator" class="mx.validators.DateValidator"/>
-	<component id="EmailValidator" class="mx.validators.EmailValidator"/>
+	<component id="EmailValidator" class="mx.validators.EmailValidator"/>-->
 	<component id="Module" class="mx.modules.Module"/>
 	<component id="ModuleLoader" class="mx.modules.ModuleLoader"/>
 	<component id="State" class="mx.states.State" />
@@ -81,15 +76,15 @@
 	<component id="ListItemRenderer" class="mx.controls.listClasses.ListItemRenderer" />
 	<component id="ButtonItemRenderer" class="mx.supportClasses.ButtonItemRenderer" />
 	<component id="FormItemRequired" class="mx.supportClasses.FormItemRequired" />
-	<component id="ArrayList" class="mx.collections.ArrayList"/>
+	<!--<component id="ArrayList" class="mx.collections.ArrayList"/>-->
 	<component id="UIComponent" class="mx.core.UIComponent"/>
 	<component id="Container" class="mx.core.Container"/>
 	<component id="ControlBar" class="mx.containers.ControlBar"/>
 	<component id="Panel" class="mx.containers.Panel"/>
 	<component id="ToolTip" class="mx.controls.ToolTip" />
     <component id="TinyEditor" class="mx.controls.TinyEditor" />
-	<component id="SortField" class="mx.collections.SortField"/>
-	<component id="Sort" class="mx.collections.Sort"/>
+	<!--<component id="SortField" class="mx.collections.SortField"/>
+	<component id="Sort" class="mx.collections.Sort"/>-->
 	<component id="Stroke" class="mx.graphics.Stroke"/>
 	<component id="SolidColor" class="mx.graphics.SolidColor"/>
 	<component id="SolidColorStroke" class="mx.graphics.SolidColorStroke"/>
@@ -104,31 +99,31 @@
 	<component id="Move" class="mx.effects.Move"/>
 	<component id="LinearGradient" class="mx.graphics.LinearGradient"/>
 	<component id="ListBase" class="mx.controls.listClasses.ListBase" />
-	<component id="Grouping" class="mx.collections.Grouping" />
-	<component id="GroupingField" class="mx.collections.GroupingField" />
+	<!--<component id="Grouping" class="mx.collections.Grouping" />
+	<component id="GroupingField" class="mx.collections.GroupingField" />-->
 	<component id="MenuBar" class="mx.controls.MenuBar"/>
-	<component id="NumberFormatter" class="mx.formatters.NumberFormatter"/>
+	<!--<component id="NumberFormatter" class="mx.formatters.NumberFormatter"/>-->
     <component id="Form" class="mx.containers.Form" />
 	<component id="FormHeading" class="mx.containers.FormHeading"/>
     <component id="FormItem" class="mx.containers.FormItem" />
-	<component id="XMLListCollection" class="mx.collections.XMLListCollection"/>
+	<!--<component id="XMLListCollection" class="mx.collections.XMLListCollection"/>-->
 	<component id="TreeItemRenderer" class="mx.controls.treeClasses.TreeItemRenderer" />
 	<component id="ToggleButtonBar" class="mx.controls.ToggleButtonBar"/>
 	<component id="DragManager" class="mx.managers.DragManager" />
-	<component id="TraceTarget" class="mx.logging.targets.TraceTarget"/>
-	<component id="GroupingCollection2" class="mx.collections.GroupingCollection2" />
+	<!--<component id="TraceTarget" class="mx.logging.targets.TraceTarget"/>-->
+	<!--<component id="GroupingCollection2" class="mx.collections.GroupingCollection2" />-->
 	<component id="AdvancedListBase" class="mx.controls.listClasses.AdvancedListBase" />
-	<component id="AsyncToken" class="mx.rpc.AsyncToken" />
+
 	<component id="VScrollBar" class="mx.controls.VScrollBar"/>
 	<component id="LinearGradientStroke" class="mx.graphics.LinearGradientStroke"/>
-	<component id="CursorManager" class="mx.managers.CursorManager" />
-	<component id="Validator" class="mx.validators.Validator"/>
-	<component id="DateFormatter" class="mx.formatters.DateFormatter"/>
+	<!--<component id="CursorManager" class="mx.managers.CursorManager" />-->
+	<!--<component id="Validator" class="mx.validators.Validator"/>-->
+	<!--<component id="DateFormatter" class="mx.formatters.DateFormatter"/>-->
 	<component id="MenuBar" class="mx.controls.MenuBar"/>
     <component id="Menu" class="mx.controls.Menu"/>
 	<component id="Glow" class="mx.effects.Glow"/>
-	<component id="StringValidator" class="mx.validators.StringValidator"/>
-	<component id="RegExpValidator" class="mx.validators.RegExpValidator"/>
+	<!--<component id="StringValidator" class="mx.validators.StringValidator"/>
+	<component id="RegExpValidator" class="mx.validators.RegExpValidator"/>-->
 	<component id="AdvancedDataGridHeaderRenderer" class="mx.controls.advancedDataGridClasses.AdvancedDataGridHeaderRenderer" />
 	<component id="AdvancedDataGridColumn" class="mx.controls.advancedDataGridClasses.AdvancedDataGridColumn" />
 	<component id="AdvancedDataGridColumnGroup" class="mx.controls.advancedDataGridClasses.AdvancedDataGridColumnGroup" />
@@ -144,12 +139,12 @@
 	<component id="Tree" class="mx.controls.Tree"/>
 	<component id="LinkBar" class="mx.controls.LinkBar"/>
 
-	<component id="AMFChannel" class="mx.messaging.channels.AMFChannel" />
+	<!--<component id="AMFChannel" class="mx.messaging.channels.AMFChannel" />
 	<component id="ChannelSet" class="mx.messaging.ChannelSet" />
-	<component id="Consumer" class="mx.messaging.Consumer" />
+	<component id="Consumer" class="mx.messaging.Consumer" />-->
 
-	<component id="ListCollectionView" class="mx.collections.ListCollectionView"/>
-	<component id="ArrayCollection" class="mx.collections.ArrayCollection"/>
+<!--	<component id="ListCollectionView" class="mx.collections.ListCollectionView"/>
+	<component id="ArrayCollection" class="mx.collections.ArrayCollection"/>-->
 	<component id="Alert" class="mx.controls.Alert" />
 	<component id="ToolBar" class="mx.controls.richTextEditorClasses.ToolBar"/>
 	<component id="AdvancedDataGrid" class="mx.controls.AdvancedDataGrid" />
@@ -157,7 +152,7 @@
 	<component id="RichTextEditor" class="mx.controls.RichTextEditor" />
         <component id="PanelTitleBar" class="mx.containers.PanelTitleBar" />
         <component id="Accordion" class="mx.containers.Accordion" />
-	<component id="PhoneFormatter" class="mx.formatters.PhoneFormatter"/>
+	<!--<component id="PhoneFormatter" class="mx.formatters.PhoneFormatter"/>-->
 
 
     <component id="WipeLeft" class="mx.effects.WipeLeft" />
@@ -221,9 +216,9 @@
     <component id="CartesianDataCanvas" class="mx.charts.chartClasses.CartesianDataCanvas"/>
     <component id="PolarDataCanvas" class="mx.charts.chartClasses.PolarDataCanvas"/>
 
-    <component id="GroupingCollection" class="mx.collections.GroupingCollection"/>
-    <component id="GroupingCollection2" class="mx.collections.GroupingCollection2"/>
-    <component id="HierarchicalData" class="mx.collections.HierarchicalData"/>
+    <!--<component id="GroupingCollection" class="mx.collections.GroupingCollection"/>
+    <component id="GroupingCollection2" class="mx.collections.GroupingCollection2"/>-->
+    <!--<component id="HierarchicalData" class="mx.collections.HierarchicalData"/>-->
 
     <component id="DownloadButton" class="mx.controls.DownloadButton"/>
     <component id="HSlider" class="mx.controls.HSlider"/>
@@ -235,8 +230,8 @@
 	<component id="NavBar" class="mx.controls.NavBar" />
 	<component id="ApplicationControlBar" class="mx.containers.ApplicationControlBar" />
    <component id="MultiSelectionList" class="mx.controls.MultiSelectionList"/>
-   <component id="CurrencyFormatter" class="mx.formatters.CurrencyFormatter"/>
-   <component id="ZipCodeValidator" class="mx.validators.ZipCodeValidator"/>
+   <!--<component id="CurrencyFormatter" class="mx.formatters.CurrencyFormatter"/>-->
+   <!--<component id="ZipCodeValidator" class="mx.validators.ZipCodeValidator"/>-->
    <component id="PrintDataGrid" class="mx.printing.PrintDataGrid"/>
    
 
diff --git a/frameworks/projects/MXRoyale/src/main/royale/MXRoyaleClasses.as b/frameworks/projects/MXRoyale/src/main/royale/MXRoyaleClasses.as
index 46780be..91f059f 100644
--- a/frameworks/projects/MXRoyale/src/main/royale/MXRoyaleClasses.as
+++ b/frameworks/projects/MXRoyale/src/main/royale/MXRoyaleClasses.as
@@ -22,11 +22,14 @@ package
 /**
  *  @private
  *  This class is used to link additional classes into rpc.swc
- *  beyond those that are found by dependecy analysis starting
+ *  beyond those that are found by dependency analysis starting
  *  from the classes specified in manifest.xml.
  */
 internal class MXRoyaleClasses
 {
+	MXRoyaleBaseClasses; //hard link in dependencies from MXRoyaleBase
+
+
 	import mx.automation.IAutomationObject; IAutomationObject;
 	import mx.controls.SWFLoader; SWFLoader;
 	import mx.core.DPIClassification; DPIClassification;
@@ -34,30 +37,30 @@ internal class MXRoyaleClasses
 	import mx.effects.AnimateProperty; AnimateProperty;
 	import mx.effects.easing.Cubic; Cubic;
 	import mx.events.StateChangeEvent; StateChangeEvent;
-	import mx.events.ResourceEvent; ResourceEvent;
+	/*import mx.events.ResourceEvent; ResourceEvent;*/
 	import mx.graphics.BitmapFill; BitmapFill;
 	import mx.graphics.BitmapFillMode; BitmapFillMode;
-	import mx.core.mx_internal; mx_internal;
+	/*import mx.core.mx_internal; mx_internal;*/
 	import mx.core.ScrollPolicy; ScrollPolicy;
 	import mx.controls.beads.ToolTipBead; ToolTipBead;
 	import mx.effects.IEffectInstance; IEffectInstance;
 	import mx.events.EffectEvent; EffectEvent;
 	import mx.graphics.IStroke; IStroke;
 	import mx.graphics.IFill; IFill;
-	import mx.core.EventPriority; EventPriority;
-	import mx.core.IFactory; IFactory;
+	/*import mx.core.EventPriority; EventPriority;*/
+	/*import mx.core.IFactory; IFactory;*/
 	import mx.core.ILayoutElement; ILayoutElement;
-	import mx.collections.CursorBookmark; CursorBookmark;
+	/*import mx.collections.CursorBookmark; CursorBookmark;
 	import mx.collections.ICollectionView; ICollectionView;
-	import mx.collections.IViewCursor; IViewCursor;
+	import mx.collections.IViewCursor; IViewCursor;*/
 	import mx.events.SandboxMouseEvent; SandboxMouseEvent;
 	import mx.events.ResizeEvent; ResizeEvent;
-	import mx.utils.StringUtil; StringUtil;
+	/*import mx.utils.StringUtil; StringUtil;*/
 	import mx.core.DragSource; DragSource;
 	import mx.events.DividerEvent; DividerEvent;
 	import mx.events.ScrollEvent; ScrollEvent;
 	import mx.events.MoveEvent; MoveEvent;
-	import mx.events.ValidationResultEvent; ValidationResultEvent;
+	/*import mx.events.ValidationResultEvent; ValidationResultEvent;*/
     import mx.containers.beads.AdvancedDataGridListVirtualListView; AdvancedDataGridListVirtualListView;
 	import mx.containers.beads.DataGridListListView; DataGridListListView;
 	import mx.containers.beads.AdvancedDataGridHeaderLayout; AdvancedDataGridHeaderLayout;
@@ -76,27 +79,27 @@ internal class MXRoyaleClasses
 	import mx.containers.gridClasses.GridColumnInfo; GridColumnInfo;
 	import mx.containers.gridClasses.GridRowInfo; GridRowInfo;
 	import mx.events.CloseEvent; CloseEvent;
-	import mx.events.DataEvent; DataEvent;
+	/*import mx.events.DataEvent; DataEvent;*/
 	import mx.controls.HRule; HRule;
 	import mx.events.ListEvent; ListEvent;
 	import mx.events.SliderEvent; SliderEvent;
 	import mx.managers.FocusManager; FocusManager;
-	import mx.utils.ArrayUtil; ArrayUtil;
+	/*import mx.utils.ArrayUtil; ArrayUtil;*/
 	import mx.effects.Effect; Effect; 
 	import mx.charts.ChartItem; ChartItem;
-	import mx.core.ClassFactory; ClassFactory;
+	/*import mx.core.ClassFactory; ClassFactory;*/
 	import mx.effects.Tween; Tween;
 	import mx.effects.Fade; Fade;
 	import mx.core.Container;Container;
 	import mx.core.ContainerGlobals; ContainerGlobals;
 	import mx.graphics.ImageSnapshot; ImageSnapshot;
 
-	import mx.system.ApplicationDomain; ApplicationDomain;
+	/*import mx.system.ApplicationDomain; ApplicationDomain;
 	import mx.system.System; System;
-	import mx.system.Security; Security;
-	import mx.rpc.http.HTTPService; mx.rpc.http.HTTPService;
+	import mx.system.Security; Security;*/
+	/*import mx.rpc.http.HTTPService; mx.rpc.http.HTTPService;
 	import mx.rpc.remoting.RemoteObject; mx.rpc.remoting.RemoteObject;
-	import mx.rpc.remoting.CompressedRemoteObject; mx.rpc.remoting.CompressedRemoteObject;
+	import mx.rpc.remoting.CompressedRemoteObject; mx.rpc.remoting.CompressedRemoteObject;*/
 	import mx.controls.treeClasses.ITreeDataDescriptor; ITreeDataDescriptor;
 	import mx.controls.treeClasses.TreeListData; TreeListData;
     import mx.controls.listClasses.ListVerticalLayout; ListVerticalLayout;
@@ -112,20 +115,20 @@ internal class MXRoyaleClasses
 	import mx.charts.HitData; HitData;
 	import mx.effects.effectClasses.RotateInstance; RotateInstance;
 	
-	import mx.events.FlexEvent; FlexEvent;
+	/*import mx.events.FlexEvent; FlexEvent;*/
 	import mx.managers.PopUpManager; PopUpManager; 
 	import mx.core.IVisualElementContainer; IVisualElementContainer;
 	import mx.managers.BrowserManager; BrowserManager;
 	import mx.charts.chartClasses.DataTransform; DataTransform;
 	import mx.skins.Border; Border;
 	import mx.effects.CompositeEffect; CompositeEffect;
-	import mx.core.FlexVersion; FlexVersion;
+	/*import mx.core.FlexVersion; FlexVersion;*/
 	import mx.charts.chartClasses.CartesianTransform; CartesianTransform;
 	import mx.charts.events.ChartItemEvent; ChartItemEvent;
 	import mx.charts.chartClasses.DataTip; DataTip;
   	import mx.controls.textClasses.TextRange; TextRange;
 	import mx.managers.CursorManagerPriority; CursorManagerPriority;
-	import mx.logging.Log; Log;
+	/*import mx.logging.Log; Log;
 	import mx.logging.LogLogger; LogLogger;
 	import mx.logging.LogEvent; LogEvent;
 	import mx.logging.LogEventLevel; LogEventLevel;
@@ -134,7 +137,7 @@ internal class MXRoyaleClasses
 	import mx.logging.ILoggingTarget; ILoggingTarget;
 	import mx.logging.errors.InvalidFilterError; InvalidFilterError;
 	import mx.logging.targets.LineFormattedTarget; LineFormattedTarget;
-	import mx.logging.targets.TraceTarget; TraceTarget;
+	import mx.logging.targets.TraceTarget; TraceTarget;*/
 	import mx.charts.chartClasses.Series; Series;
 	import mx.charts.chartClasses.GraphicsUtilities; GraphicsUtilities; 
 	import mx.effects.easing.Bounce; Bounce;
@@ -142,60 +145,60 @@ internal class MXRoyaleClasses
 	import mx.effects.effectClasses.TweenEffectInstance; TweenEffectInstance;
 	import mx.effects.effectClasses.AnimatePropertyInstance; AnimatePropertyInstance;
 	import mx.effects.TweenEffect; TweenEffect; 
-	import mx.rpc.Fault; Fault;
+	/*import mx.rpc.Fault; Fault;
 	import mx.rpc.events.InvokeEvent; InvokeEvent;
 	import mx.rpc.events.ResultEvent; ResultEvent;
 	import mx.rpc.AsyncResponder; AsyncResponder;
-	import mx.rpc.Responder; Responder;
+	import mx.rpc.Responder; Responder;*/
 	import mx.printing.FlexPrintJobScaleType; FlexPrintJobScaleType; 
 	import mx.skins.RectangularBorder; RectangularBorder;
 	import mx.styles.IStyleClient; IStyleClient; 
 	import mx.styles.ISimpleStyleClient; ISimpleStyleClient; 
 	import mx.styles.StyleProxy; StyleProxy;
 	import mx.styles.StyleManagerImpl; StyleManagerImpl;
-	import mx.modules.IModuleInfo; IModuleInfo;
-	import mx.formatters.SwitchSymbolFormatter; SwitchSymbolFormatter;
-	import mx.formatters.ZipCodeFormatter; ZipCodeFormatter;
+	/*import mx.modules.IModuleInfo; IModuleInfo;*/
+	/*import mx.formatters.SwitchSymbolFormatter; SwitchSymbolFormatter;
+	import mx.formatters.ZipCodeFormatter; ZipCodeFormatter;*/
 	import mx.printing.FlexPrintJob; FlexPrintJob; 
-	import mx.utils.URLUtil; URLUtil;
+	/*import mx.utils.URLUtil; URLUtil;*/
 	import mx.core.UITextField; UITextField;
 	import mx.effects.Parallel; Parallel; 
-	import mx.rpc.events.FaultEvent; FaultEvent;
+/*	import mx.rpc.events.FaultEvent; FaultEvent;*/
 	import mx.events.AdvancedDataGridEvent; AdvancedDataGridEvent;
 	import mx.events.DataGridEvent; DataGridEvent;
 	import mx.events.DataGridEventReason; DataGridEventReason;
 	import mx.skins.ProgrammaticSkin; ProgrammaticSkin;
-	import mx.rpc.soap.WebService; WebService;
-	import mx.collections.ISort; ISort;
-	import mx.collections.AsyncListView; AsyncListView;
-	import mx.utils.Base64Encoder; Base64Encoder;
+	/*import mx.rpc.soap.WebService; WebService;*/
+	/*import mx.collections.ISort; ISort;
+	import mx.collections.AsyncListView; AsyncListView;*/
+	/*import mx.utils.Base64Encoder; Base64Encoder;
 	import mx.utils.Base64Decoder; Base64Decoder;
-	import mx.utils.BitFlagUtil; BitFlagUtil;
-	import mx.events.IndexChangedEvent; IndexChangedEvent;
+	import mx.utils.BitFlagUtil; BitFlagUtil;*/
+	/*import mx.events.IndexChangedEvent; IndexChangedEvent;*/
 	import mx.events.ItemClickEvent; ItemClickEvent;
 	import mx.events.ModuleEvent; ModuleEvent;
 	import mx.events.MouseEvent; MouseEvent;
 	import mx.managers.SystemManager; SystemManager;
 	import mx.filters.BitmapFilter; BitmapFilter;
 	import mx.filters.ColorMatrixFilter; ColorMatrixFilter;
-	import mx.events.IOErrorEvent; IOErrorEvent;
+	/*import mx.events.IOErrorEvent; IOErrorEvent;*/
 	import mx.events.FocusEvent; FocusEvent;
-	import mx.errors.EOFError; EOFError;
+	/*import mx.errors.EOFError; EOFError;*/
 	import mx.events.TextEvent; TextEvent;
 	import mx.display.Bitmap; Bitmap;
 	import mx.display.Loader; Loader;
-	import mx.external.ExternalInterface; ExternalInterface;
+	/*import mx.external.ExternalInterface; ExternalInterface;*/
 	import mx.events.KeyboardEvent; KeyboardEvent;
-	import mx.geom.Matrix; Matrix;
-	import mx.utils.ByteArray; mx.utils.ByteArray;
+	/*import mx.geom.Matrix; Matrix;*/
+	/*import mx.utils.ByteArray; mx.utils.ByteArray;*/
 	import mx.controls.RichTextEditor; RichTextEditor;
-	import mx.events.SecurityErrorEvent; SecurityErrorEvent;
-	import mx.events.HTTPStatusEvent; HTTPStatusEvent;
-	import mx.net.FileReference; FileReference;
+	/*import mx.events.SecurityErrorEvent; SecurityErrorEvent;*/
+	/*import mx.events.HTTPStatusEvent; HTTPStatusEvent;*/
+	/*import mx.net.FileReference; FileReference;
 	import mx.net.FileFilter; FileFilter;
-	import mx.net.URLLoaderDataFormat; URLLoaderDataFormat;
+	import mx.net.URLLoaderDataFormat; URLLoaderDataFormat;*/
 	
-	import mx.events.ProgressEvent; ProgressEvent;
+	/*import mx.events.ProgressEvent; ProgressEvent;*/
 	import mx.events.ColorPickerEvent; ColorPickerEvent;
     import mx.controls.advancedDataGridClasses.AdvancedDataGridColumnList; AdvancedDataGridColumnList;
     import mx.controls.advancedDataGridClasses.AdvancedDataGridButtonBar; AdvancedDataGridButtonBar;
@@ -215,49 +218,49 @@ internal class MXRoyaleClasses
     import mx.controls.listClasses.ListSingleSelectionMouseController; ListSingleSelectionMouseController;
     import mx.controls.treeClasses.TreeSingleSelectionMouseController; TreeSingleSelectionMouseController;
     import mx.controls.beads.TreeItemRendererMouseController; TreeItemRendererMouseController;
-	import mx.formatters.Formatter; Formatter;
+	/*import mx.formatters.Formatter; Formatter;
 	import mx.formatters.IFormatter; IFormatter;
 	import mx.formatters.NumberBase; NumberBase;
 	import mx.formatters.NumberBaseRoundType; NumberBaseRoundType;
-	import mx.formatters.CurrencyFormatter; CurrencyFormatter;
+	import mx.formatters.CurrencyFormatter; CurrencyFormatter;*/
 	import mx.events.CalendarLayoutChangeEvent; CalendarLayoutChangeEvent;
-	import mx.net.SharedObject; SharedObject;
-	import mx.net.SharedObjectJSON; SharedObjectJSON;
+	/*import mx.net.SharedObject; SharedObject;
+	import mx.net.SharedObjectJSON; SharedObjectJSON;*/
 	import mx.modules.ModuleManager; ModuleManager;
 	import mx.events.DragEvent; DragEvent;
-	import mx.formatters.DateBase; DateBase;
-	import mx.core.Keyboard; Keyboard;
+	/*import mx.formatters.DateBase; DateBase;*/
+	/*import mx.core.Keyboard; Keyboard;*/
 	import mx.core.UIComponentGlobals; UIComponentGlobals;
 	import mx.managers.ILayoutManagerClient; ILayoutManagerClient;
 	import mx.core.LayoutDirection; LayoutDirection;
 	import mx.styles.IAdvancedStyleClient; IAdvancedStyleClient;
-	import mx.collections.IComplexSortField; IComplexSortField;
-	import mx.collections.HierarchicalData; HierarchicalData
+	/*import mx.collections.IComplexSortField; IComplexSortField;
+	import mx.collections.HierarchicalData; HierarchicalData*/
 
 	import mx.core.IIMESupport; IIMESupport;
 	import mx.core.InteractionMode; InteractionMode;
-	import mx.collections.ComplexFieldChangeWatcher; ComplexFieldChangeWatcher;
-	import mx.binding.BindabilityInfo; BindabilityInfo;
+	/*import mx.collections.ComplexFieldChangeWatcher; ComplexFieldChangeWatcher;*/
+	/*import mx.binding.BindabilityInfo; BindabilityInfo;
 	import mx.binding.utils.ChangeWatcher; ChangeWatcher;
-	import mx.binding.utils.BindingUtils; BindingUtils;
-	import mx.validators.IValidatorListener; IValidatorListener;
+	import mx.binding.utils.BindingUtils; BindingUtils;*/
+/*	import mx.validators.IValidatorListener; IValidatorListener;*/
 	import mx.managers.IToolTipManagerClient; IToolTipManagerClient;
 	import mx.events.ToolTipEvent; ToolTipEvent;
-	import mx.core.Singleton; Singleton;
+	/*import mx.core.Singleton; Singleton;*/
 	import mx.effects.IAbstractEffect; IAbstractEffect;
 	import mx.managers.ToolTipManager; ToolTipManager;
 	import mx.managers.IToolTipManager2; IToolTipManager2;
 	import mx.utils.PopUpUtil; PopUpUtil;
-	import mx.rpc.http.HTTPMultiService; HTTPMultiService;
-	import mx.messaging.messages.HTTPRequestMessage; HTTPRequestMessage;
+	/*import mx.rpc.http.HTTPMultiService; HTTPMultiService;*/
+	/*import mx.messaging.messages.HTTPRequestMessage; HTTPRequestMessage;
 	import mx.messaging.channels.DirectHTTPChannel; DirectHTTPChannel;
     import mx.messaging.channels.HTTPChannel; HTTPChannel;
-	import mx.messaging.errors.MessageSerializationError; MessageSerializationError;
-	import mx.rpc.http.SerializationFilter; SerializationFilter;
-	import mx.rpc.http.AbstractOperation; AbstractOperation;
+	import mx.messaging.errors.MessageSerializationError; MessageSerializationError;*/
+	/*import mx.rpc.http.SerializationFilter; SerializationFilter;
+	import mx.rpc.http.AbstractOperation; AbstractOperation;*/
 	import mx.events.MenuEvent; MenuEvent;
-	import mx.rpc.CallResponder; CallResponder;
-	import mx.rpc.http.Operation; Operation;
+	/*import mx.rpc.CallResponder; CallResponder;
+	import mx.rpc.http.Operation; Operation;*/
 	import mx.events.TreeEvent; TreeEvent;
 	import mx.controls.Menu; Menu;
 	import mx.events.NumericStepperEvent; NumericStepperEvent;
@@ -294,13 +297,13 @@ internal class MXRoyaleClasses
     import mx.controls.beads.models.ComboBoxModel; ComboBoxModel;
     import mx.controls.beads.models.CascadingMenuModel; CascadingMenuModel;
     
-	import mx.collections.errors.ItemPendingError; ItemPendingError;
+	/*import mx.collections.errors.ItemPendingError; ItemPendingError;*/
 	import mx.controls.scrollClasses.ScrollThumb; ScrollThumb;
 	import mx.effects.EffectTargetFilter; EffectTargetFilter;
 	import mx.effects.effectClasses.PropertyChanges; PropertyChanges;
 	import mx.effects.IEffect; IEffect;
 	import mx.effects.IEffectTargetHost; IEffectTargetHost;
-	import mx.events.RSLEvent; RSLEvent;
+	/*import mx.events.RSLEvent; RSLEvent;*/
 	import mx.skins.halo.DataGridHeaderSeparator; DataGridHeaderSeparator;
 	import mx.filters.BaseDimensionFilter; BaseDimensionFilter;
 	import mx.filters.BaseFilter; BaseFilter;
@@ -329,7 +332,7 @@ internal class MXRoyaleClasses
 
 
 	// --- RpcClassAliasInitializer
-	import org.apache.royale.reflection.registerClassAlias;
+	/*import org.apache.royale.reflection.registerClassAlias;
 
 	import mx.messaging.messages.AcknowledgeMessage;
 	import mx.messaging.messages.AsyncMessage;
@@ -345,10 +348,10 @@ internal class MXRoyaleClasses
 	import mx.messaging.messages.CommandMessageExt;
 	registerClassAlias("DSK", AcknowledgeMessageExt);
 	registerClassAlias("DSA", AsyncMessageExt);
-	registerClassAlias("DSC", CommandMessageExt);
+	registerClassAlias("DSC", CommandMessageExt);*/
 	// RpcClassAliasInitializer ----------------------------------------
     
-	import mx.net.URLLoader; URLLoader;
+	/*import mx.net.URLLoader; URLLoader;*/
 	import mx.events.FlexMouseEvent; FlexMouseEvent;
 	import mx.controls.HSlider; HSlider;
 	import mx.controls.sliderClasses.Slider; Slider;
@@ -359,55 +362,55 @@ internal class MXRoyaleClasses
 	import mx.controls.listClasses.TileBase; TileBase;
 	import mx.controls.listClasses.TileBaseDirection; TileBaseDirection;
 	
-	import mx.utils.NameUtil; NameUtil;
+	/*import mx.utils.NameUtil; NameUtil;*/
 	import mx.core.BitmapAsset; BitmapAsset;
 
-	import mx.events.TimerEvent; TimerEvent;
-	import mx.utils.Timer; Timer;
+	/*import mx.events.TimerEvent; TimerEvent;*/
+	/*import mx.utils.Timer; Timer;*/
 	import mx.controls.menuClasses.IMenuItemRenderer; IMenuItemRenderer;
 	import mx.controls.menuClasses.IMenuDataDescriptor; IMenuDataDescriptor;
 	import mx.controls.menuClasses.IMenuBarItemRenderer; IMenuBarItemRenderer;
 	import mx.utils.GraphicsUtil; GraphicsUtil;
-        import mx.dummy.ContextMenuItem; ContextMenuItem;
+    import mx.dummy.ContextMenuItem; ContextMenuItem;
 	import mx.containers.ApplicationControlBar; ApplicationControlBar;
 	import mx.filters.BitmapFilterType; BitmapFilterType;
 	import mx.filters.BitmapFilterQuality; BitmapFilterQuality;
-	import mx.net.URLRequestMethod; URLRequestMethod;
+	/*import mx.net.URLRequestMethod; URLRequestMethod;*/
 	import mx.controls.ButtonLabelPlacement; ButtonLabelPlacement;
 	import mx.display.NativeMenu; NativeMenu;
 	
 	import mx.printing.PrintJobOptions; PrintJobOptions;
 	import mx.text.TextFieldAutoSize; TextFieldAutoSize;
-	import mx.errors.ScriptTimeoutError; ScriptTimeoutError;
+	/*import mx.errors.ScriptTimeoutError; ScriptTimeoutError;*/
 	import mx.controls.beads.models.ArrayMultiSelectionModel; ArrayMultiSelectionModel;
     import mx.controls.beads.MultiSelectionListView; MultiSelectionListView; 
     import mx.controls.beads.controllers.ListMultiSelectionMouseController; ListMultiSelectionMouseController;
     import mx.controls.beads.MultiSelectionItemRendererClassFactory; MultiSelectionItemRendererClassFactory;
-	import mx.utils.DescribeTypeCache; DescribeTypeCache;
+	/*import mx.utils.DescribeTypeCache; DescribeTypeCache;*/
 	import mx.events.FocusRequestDirection; FocusRequestDirection;
 	import mx.core.IBorder; IBorder;
 	import mx.core.IRectangularBorder; IRectangularBorder;
 	import mx.events.EventPhase; EventPhase;
 	import mx.core.ComponentDescriptor; ComponentDescriptor;
 	import mx.core.UIComponentDescriptor; UIComponentDescriptor;
-	import mx.binding.Binding; Binding;
+	/*import mx.binding.Binding; Binding;
 	import mx.binding.IBindingClient; IBindingClient;
-	import mx.binding.BindingManager; BindingManager;
-	import mx.data.EncryptedLocalStore; EncryptedLocalStore;
+	import mx.binding.BindingManager; BindingManager;*/
+	/*import mx.data.EncryptedLocalStore; EncryptedLocalStore;*/
 	import mx.filesystem.File; File;
-	import mx.system.Capabilities; Capabilities;
+	/*import mx.system.Capabilities; Capabilities;*/
 	import mx.filesystem.FileMode; FileMode;
 	import mx.filesystem.FileStream; FileStream;
-	import mx.net.Socket; Socket;
-	import mx.utils.Endian; Endian;
+	/*import mx.net.Socket; Socket;*/
+	/*import mx.utils.Endian; Endian;*/
 	import mx.text.Font; Font;
-	import mx.net.LocalConnection; LocalConnection;
-	import mx.net.ObjectEncoding; ObjectEncoding;
+	/*import mx.net.LocalConnection; LocalConnection;*/
+	/*import mx.net.ObjectEncoding; ObjectEncoding;*/
 	import mx.core.ByteArrayAsset; ByteArrayAsset;
 	import mx.core.ContainerRawChildrenList; ContainerRawChildrenList;
 
 
-	import mx.globalization.supportClasses.GlobalizationBase; GlobalizationBase;
+	/*import mx.globalization.supportClasses.GlobalizationBase; GlobalizationBase;
 	import mx.globalization.CurrencyParseResult; CurrencyParseResult;
 	import mx.globalization.DateTimeFormatter; DateTimeFormatter;
 	import mx.globalization.DateTimeNameStyle; DateTimeNameStyle;
@@ -416,16 +419,16 @@ internal class MXRoyaleClasses
 	import mx.globalization.LocaleID; LocaleID;
 	import mx.globalization.NationalDigitsType; NationalDigitsType;
 	import mx.globalization.NumberFormatter; NumberFormatter;
-	import mx.globalization.NumberParseResult; NumberParseResult;
+	import mx.globalization.NumberParseResult; NumberParseResult;*/
 	import mx.core.LayoutContainer; LayoutContainer;
 	import mx.containers.utilityClasses.Layout; Layout;
-	import mx.validators.ZipCodeValidator; ZipCodeValidator;
-	import mx.validators.ZipCodeValidatorDomainType; ZipCodeValidatorDomainType;
+	/*import mx.validators.ZipCodeValidator; ZipCodeValidator;
+	import mx.validators.ZipCodeValidatorDomainType; ZipCodeValidatorDomainType;*/
 	import mx.controls.dataGridClasses.DataGridHeaderBase; DataGridHeaderBase;
 	import mx.controls.dataGridClasses.DataGridHeader; DataGridHeader;
 	import mx.printing.PrintJob; PrintJob;
 	import mx.containers.accordionClasses.AccordionHeader; AccordionHeader;
-	import mx.net.FileReferenceList; FileReferenceList;
+	/*import mx.net.FileReferenceList; FileReferenceList;*/
 }
 
 }
diff --git a/frameworks/projects/MXRoyale/asconfig.json b/frameworks/projects/MXRoyaleBase/asconfig.json
similarity index 94%
copy from frameworks/projects/MXRoyale/asconfig.json
copy to frameworks/projects/MXRoyaleBase/asconfig.json
index 75bb785..e7a6a0f 100644
--- a/frameworks/projects/MXRoyale/asconfig.json
+++ b/frameworks/projects/MXRoyaleBase/asconfig.json
@@ -24,7 +24,7 @@
             "SWF"
         ],
         "include-classes": [
-            "MXRoyaleClasses"
+            "MXRoyaleBaseClasses"
         ],
         "include-sources": [
             "src/main/royale"
@@ -35,7 +35,7 @@
         "external-library-path": [
             "../../../../frameworks/libs/air/airglobal.swc"
         ],
-        "output": "target/MXRoyale.swc"
+        "output": "target/MXRoyaleBase.swc"
     },
     "additionalOptions": "-compiler.define+=ROYALE::DISPLAYOBJECT,DisplayObject -js-compiler-define+=ROYALE::DISPLAYOBJECT,IUIComponent -js-compiler-define+=COMPILE::SWF,false -js-compiler-define+=COMPILE::JS,true"
 }
\ No newline at end of file
diff --git a/frameworks/projects/MXRoyaleBase/build.xml b/frameworks/projects/MXRoyaleBase/build.xml
new file mode 100644
index 0000000..838b0b3
--- /dev/null
+++ b/frameworks/projects/MXRoyaleBase/build.xml
@@ -0,0 +1,177 @@
+<?xml version="1.0"?>
+<!--
+
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+
+-->
+
+
+<project name="MXRoyaleBase" default="main" basedir=".">
+    <property name="ROYALE_HOME" location="../../.."/>
+    
+    <property file="${ROYALE_HOME}/env.properties"/>
+    <property environment="env"/>
+    <property file="${ROYALE_HOME}/local.properties"/>
+    <property file="${ROYALE_HOME}/build.properties"/>
+    <property name="ROYALE_HOME" value="${ROYALE_HOME}"/>
+    
+    <property name="target.name" value="${ant.project.name}.swc" />
+    
+    <tstamp>
+        <format property="royale.swc-date" pattern="MM/dd/yy HH:mm Z"/>
+    </tstamp>
+    <echo>swc-date is ${royale.swc-date}</echo>
+    
+    <target name="main" depends="clean,check-compiler,compile,compile-js,copy-swc,test" description="Full build of ${ant.project.name}.swc">
+    </target>
+    
+    <target name="compile-js">
+        <ant dir="${ROYALE_HOME}/frameworks/js/projects/${ant.project.name}JS/" inheritAll="false" >
+            <property name="ROYALE_SWF_COMPILER_HOME" value="${ROYALE_SWF_COMPILER_HOME}"/>
+            <property name="ROYALE_COMPILER_HOME" value="${ROYALE_COMPILER_HOME}"/>
+            <property name="ROYALE_HOME" value="${ROYALE_HOME}"/>
+        </ant>
+    </target>
+    
+    <target name="copy-swc" if="env.AIR_HOME">
+        <copy file="${basedir}/target/${target.name}" tofile="${ROYALE_HOME}/frameworks/libs/${target.name}" />
+    </target>
+    
+    <target name="check-for-tests" >
+        <condition property="skip-tests" >
+            <not>
+                <available file="${basedir}/src/test/royale/build.xml" />
+            </not>
+        </condition>
+        <!-- exclude from js-only build -->
+        <condition property="skip-tests" >
+            <not>
+                <isset property="env.AIR_HOME" />
+            </not>
+        </condition>
+    </target>
+    
+    <target name="test" depends="check-for-tests,check-compiler" unless="skip-tests">
+        <ant dir="src/test/royale" />
+        <antcall target="test-js" />
+    </target>
+
+    <target name="test-js">
+        <ant dir="${ROYALE_HOME}/frameworks/js/projects/${ant.project.name}JS/" inheritAll="false" target="test">
+            <property name="ROYALE_SWF_COMPILER_HOME" value="${ROYALE_SWF_COMPILER_HOME}"/>
+            <property name="ROYALE_COMPILER_HOME" value="${ROYALE_COMPILER_HOME}"/>
+            <property name="ROYALE_HOME" value="${ROYALE_HOME}"/>
+        </ant>
+    </target>
+    
+    <target name="clean">
+        <delete failonerror="false">
+            <fileset dir="${ROYALE_HOME}/frameworks/libs">
+                <include name="${target.name}"/>
+            </fileset>
+        </delete>
+        <delete failonerror="false" includeemptydirs="true">
+            <fileset dir="${basedir}/target">
+                <include name="**/**"/>
+            </fileset>
+        </delete>
+        <antcall target="clean-tests" />
+    </target>
+    
+    <target name="clean-tests" depends="check-for-tests" unless="skip-tests">
+        <ant dir="src/test/royale" target="clean"/>
+    </target>
+    
+    <target name="compile" description="Compiles .as files into .swc" if="env.AIR_HOME">
+        <!-- use antcall so that resultproperty can be used in other projects and
+             they don't collide when being run one after the other -->
+        <antcall target="compile-swf" />
+    </target>
+    
+    <target name="compile-swf">
+        <echo message="Compiling libs/${ant.project.name}.swc"/>
+        <echo message="ROYALE_HOME: ${ROYALE_HOME}"/>
+        <echo message="ROYALE_SWF_COMPILER_HOME: ${ROYALE_SWF_COMPILER_HOME}"/>
+        <echo message="ROYALE_COMPILER_HOME: ${ROYALE_COMPILER_HOME}"/>
+        
+        <java jar="${ROYALE_COMPILER_HOME}/lib/compc.jar" fork="true"
+            resultproperty="compcoutput">
+            <jvmarg value="-Xmx384m" />
+            <jvmarg value="-Dsun.io.useCanonCaches=false" />
+            <jvmarg value="-Droyalelib=${ROYALE_HOME}/frameworks" />
+            <arg value="+royalelib=${ROYALE_HOME}/frameworks" />
+            <arg value="+playerglobal.version=${playerglobal.version}" />
+            <arg value="+env.AIR_HOME=${env.AIR_HOME}" />
+            <arg value="-compiler.strict-xml=true" />
+            <arg value="-compiler.targets=SWF,JSRoyale" />
+            <arg value="-compiler.define+=GOOG::DEBUG,true" />
+            <arg value="-compiler.define+=ROYALE::DISPLAYOBJECT,DisplayObject" />
+            <arg line="-metadata.date=&quot;${royale.swc-date}&quot;" />
+            <arg line="-metadata.dateFormat=&quot;MM/dd/yy HH:mm Z&quot;" />
+            <arg line="-swf-debugfile-alias=&quot;/org/apache/royale/${release.version}&quot;" />
+            <arg value="-output=${basedir}/target/${target.name}" />
+            <arg value="-load-config=${basedir}/src/main/config/compile-swf-config.xml" />
+            <arg value="-js-compiler-define+=ROYALE::DISPLAYOBJECT,IUIComponent" />
+            <arg value="-js-compiler-define+=GOOG::DEBUG,goog.DEBUG" />
+            <arg value="-js-compiler-define+=COMPILE::SWF,false" />
+            <arg value="-js-compiler-define+=COMPILE::JS,true" />
+            <arg value="-js-load-config=${ROYALE_HOME}/frameworks/js-config.xml" />
+            <arg value="-js-load-config+=${basedir}/../../js/projects/${ant.project.name}JS/src/main/config/compile-js-config.xml" />
+        </java>
+        <fail>
+            <condition>
+                <not>
+                    <or>
+                        <equals arg1="${compcoutput}" arg2="0" />
+                        <equals arg1="${compcoutput}" arg2="2" />
+                    </or>
+                </not>
+            </condition>
+        </fail>
+    </target>
+    
+    <target name="check-compiler" depends="check-compiler-home,check-transpiler-home">
+        <path id="lib.path">
+            <fileset dir="${ROYALE_COMPILER_HOME}/lib" includes="compiler-royaleTasks.jar"/>
+        </path>
+        <taskdef resource="flexTasks.tasks" classpathref="lib.path"/>
+    </target>
+    
+    <target name="check-compiler-home"
+        description="Set ROYALE_SWF_COMPILER_HOME to point at the compiler.">
+        
+        <available file="${ROYALE_HOME}/lib/compiler-mxmlc.jar"
+        type="file"
+        property="ROYALE_SWF_COMPILER_HOME"
+        value="${ROYALE_HOME}"/>
+        
+        <fail message="ROYALE_SWF_COMPILER_HOME must be set to a folder with a lib sub-folder containing compiler-mxmlc.jar such as the compiler folder in royale-compiler repo or the root of a Royale SDK"
+        unless="ROYALE_SWF_COMPILER_HOME"/>
+    </target>
+    
+    <target name="check-transpiler-home"
+        description="Set ROYALE_COMPILER_HOME to point at the cross-compiler.">
+        
+        <available file="${ROYALE_HOME}/js/lib/jsc.jar"
+        type="file"
+        property="ROYALE_COMPILER_HOME"
+        value="${ROYALE_HOME}/js"/>
+        
+        <fail message="ROYALE_COMPILER_HOME must be set to a folder with a lib sub-folder containing jsc.jar such as the compiler-jx folder in royale-compiler repo or the js folder of a Royale SDK"
+        unless="ROYALE_COMPILER_HOME"/>
+    </target>
+    
+</project>
diff --git a/frameworks/projects/MXRoyale/pom.xml b/frameworks/projects/MXRoyaleBase/pom.xml
similarity index 80%
copy from frameworks/projects/MXRoyale/pom.xml
copy to frameworks/projects/MXRoyaleBase/pom.xml
index 6423666..fd106f6 100644
--- a/frameworks/projects/MXRoyale/pom.xml
+++ b/frameworks/projects/MXRoyaleBase/pom.xml
@@ -25,11 +25,12 @@
     <version>0.9.9-SNAPSHOT</version>
   </parent>
 
-  <artifactId>MXRoyale</artifactId>
+  <artifactId>MXRoyaleBase</artifactId>
   <version>0.9.9-SNAPSHOT</version>
   <packaging>swc</packaging>
 
-  <name>Apache Royale: Framework: Libs: MXRoyale</name>
+  <name>Apache Royale: Framework: Libs: MXRoyaleBase</name>
+  <description>contains Royale versions of mostly non-UI classes represented in the Apache Flex framework</description>
 
   <build>
     <sourceDirectory>src/main/royale</sourceDirectory>
@@ -47,54 +48,8 @@
             </namespace>
           </namespaces>
           <includeClasses>
-            <includeClass>MXRoyaleClasses</includeClass>
+            <includeClass>MXRoyaleBaseClasses</includeClass>
           </includeClasses>
-          <includeFiles>
-              <include-file>
-                  <name>defaults.css</name>
-                  <path>../src/main/resources/defaults.css</path>
-              </include-file>
-              <include-file>
-                  <name>assets/icon_align_center.png</name>
-                  <path>../src/main/resources/assets/icon_align_center.png</path>
-              </include-file>
-              <include-file>
-                  <name>assets/icon_align_justify.png</name>
-                  <path>../src/main/resources/assets/icon_align_justify.png</path>
-              </include-file>
-              <include-file>
-                  <name>assets/icon_align_left.png</name>
-                  <path>../src/main/resources/assets/icon_align_left.png</path>
-              </include-file>
-              <include-file>
-                  <name>assets/icon_align_right.png</name>
-                  <path>../src/main/resources/assets/icon_align_right.png</path>
-              </include-file>
-              <include-file>
-                  <name>assets/icon_bullet.png</name>
-                  <path>../src/main/resources/assets/icon_bullet.png</path>
-              </include-file>
-              <include-file>
-                  <name>assets/icon_style_bold.png</name>
-                  <path>../src/main/resources/assets/icon_style_bold.png</path>
-              </include-file>
-              <include-file>
-                  <name>assets/icon_style_italic.png</name>
-                  <path>../src/main/resources/assets/icon_style_italic.png</path>
-              </include-file>
-              <include-file>
-                  <name>assets/icon_style_underline.png</name>
-                  <path>../src/main/resources/assets/icon_style_underline.png</path>
-              </include-file>
-	      <include-file>
-                  <name>assets/icon_required_indicator.png</name>
-                  <path>../src/main/resources/assets/icon_required_indicator.png</path>
-              </include-file>
-	      <include-file>
-                  <name>assets/icon_error_indicator.png</name>
-                  <path>../src/main/resources/assets/icon_error_indicator.png</path>
-              </include-file>
-          </includeFiles>
           <skipExtern>true</skipExtern>
           <skipAS>${royale.skipAS}</skipAS>
           <defines>
@@ -112,7 +67,6 @@
               </define>
           </defines>
           <allowSubclassOverrides>true</allowSubclassOverrides>
-          <includeLookupOnly>true</includeLookupOnly>
           <additionalCompilerOptions>
               ${project.compiler.options};
               -js-compiler-define=COMPILE::JS,true;
diff --git a/frameworks/projects/MXRoyale/src/main/config/compile-swf-config.xml b/frameworks/projects/MXRoyaleBase/src/main/config/compile-swf-config.xml
similarity index 69%
copy from frameworks/projects/MXRoyale/src/main/config/compile-swf-config.xml
copy to frameworks/projects/MXRoyaleBase/src/main/config/compile-swf-config.xml
index 51ae658..d6fae36 100644
--- a/frameworks/projects/MXRoyale/src/main/config/compile-swf-config.xml
+++ b/frameworks/projects/MXRoyaleBase/src/main/config/compile-swf-config.xml
@@ -96,60 +96,13 @@
 
         <!-- Use of the instanceof operator. -->
         <warn-instance-of-changes>false</warn-instance-of-changes>
-
-        <!-- avoid warnings for 'this within closure' (multiple, intentional) -->
-        <warn-this-within-closure>false</warn-this-within-closure>
     </compiler>
-    
-    <include-file>
-        <name>defaults.css</name>
-        <path>../resources/defaults.css</path>
-    </include-file>
-    <include-file>
-        <name>assets/icon_align_center.png</name>
-        <path>../resources/assets/icon_align_center.png</path>
-    </include-file>
-    <include-file>
-        <name>assets/icon_align_justify.png</name>
-        <path>../resources/assets/icon_align_justify.png</path>
-    </include-file>
-    <include-file>
-        <name>assets/icon_align_left.png</name>
-        <path>../resources/assets/icon_align_left.png</path>
-    </include-file>
-    <include-file>
-        <name>assets/icon_align_right.png</name>
-        <path>../resources/assets/icon_align_right.png</path>
-    </include-file>
-    <include-file>
-        <name>assets/icon_bullet.png</name>
-        <path>../resources/assets/icon_bullet.png</path>
-    </include-file>
-    <include-file>
-        <name>assets/icon_style_bold.png</name>
-        <path>../resources/assets/icon_style_bold.png</path>
-    </include-file>
-    <include-file>
-        <name>assets/icon_style_italic.png</name>
-        <path>../resources/assets/icon_style_italic.png</path>
-    </include-file>
-    <include-file>
-        <name>assets/icon_style_underline.png</name>
-        <path>../resources/assets/icon_style_underline.png</path>
-    </include-file>
-    <include-file>
-        <name>assets/icon_required_indicator.png</name>
-        <path>../resources/assets/icon_required_indicator.png</path>
-    </include-file>
-    <include-file>
-        <name>assets/icon_error_indicator.png</name>
-        <path>../resources/assets/icon_error_indicator.png</path>
-    </include-file>
+
 
     <include-lookup-only>true</include-lookup-only>
 
     <include-classes>
-        <class>MXRoyaleClasses</class>
+        <class>MXRoyaleBaseClasses</class>
     </include-classes>
     
     <include-namespaces>
diff --git a/frameworks/projects/MXRoyaleBase/src/main/resources/mx-royale-as-manifest.xml b/frameworks/projects/MXRoyaleBase/src/main/resources/mx-royale-as-manifest.xml
new file mode 100644
index 0000000..629cc54
--- /dev/null
+++ b/frameworks/projects/MXRoyaleBase/src/main/resources/mx-royale-as-manifest.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0"?>
+<!--
+
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+
+-->
+
+
+<componentPackage>
+
+    
+
+</componentPackage>
diff --git a/frameworks/projects/MXRoyaleBase/src/main/resources/mx-royale-manifest.xml b/frameworks/projects/MXRoyaleBase/src/main/resources/mx-royale-manifest.xml
new file mode 100644
index 0000000..f336d71
--- /dev/null
+++ b/frameworks/projects/MXRoyaleBase/src/main/resources/mx-royale-manifest.xml
@@ -0,0 +1,75 @@
+<?xml version="1.0"?>
+<!--
+
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+
+-->
+
+
+<componentPackage>
+
+	<!-- collections -->
+	<component id="ListCollectionView" 					class="mx.collections.ListCollectionView"/>
+	<component id="ArrayCollection" 					class="mx.collections.ArrayCollection"/>
+	<component id="ArrayList" 							class="mx.collections.ArrayList"/>
+	<component id="SortField" 							class="mx.collections.SortField"/>
+	<component id="Sort" 								class="mx.collections.Sort"/>
+	<component id="XMLListCollection" 					class="mx.collections.XMLListCollection"/>
+	<component id="GroupingCollection" 					class="mx.collections.GroupingCollection"/>
+	<component id="GroupingCollection2" 				class="mx.collections.GroupingCollection2"/>
+	<component id="HierarchicalData" 					class="mx.collections.HierarchicalData"/>
+	<component id="Grouping" 							class="mx.collections.Grouping" />
+	<component id="GroupingField" 						class="mx.collections.GroupingField" />
+
+
+	<!-- formatters -->
+	<component id="NumberFormatter" 					class="mx.formatters.NumberFormatter"/>
+	<component id="DateFormatter" 						class="mx.formatters.DateFormatter"/>
+	<component id="PhoneFormatter" 						class="mx.formatters.PhoneFormatter"/>
+	<component id="CurrencyFormatter" 					class="mx.formatters.CurrencyFormatter"/>
+
+	<!-- logging -->
+	<component id="TraceTarget" 						class="mx.logging.targets.TraceTarget"/>
+
+	<!-- managers -->
+	<component id="CursorManager" 						class="mx.managers.CursorManager" />
+
+	<!-- messaging -->
+	<component id="AMFChannel" 							class="mx.messaging.channels.AMFChannel" />
+	<component id="ChannelSet" 							class="mx.messaging.ChannelSet" />
+	<component id="Consumer" 							class="mx.messaging.Consumer" />
+
+	<!-- rpc -->
+	<component id="AsyncToken" 							class="mx.rpc.AsyncToken" />
+	<component id="CompressedRemoteObject" 				class="mx.rpc.remoting.mxml.CompressedRemoteObject" />
+	<component id="RemoteObject" 						class="mx.rpc.remoting.mxml.RemoteObject" />
+	<component id="RemoteObjectOperation"				class="mx.rpc.remoting.mxml.Operation"/>
+	<component id="HTTPService" 						class="mx.rpc.http.mxml.HTTPService" />
+	<component id="WebService" 							class="mx.rpc.soap.mxml.WebService" />
+	<component id="WebServiceOperation" 				class="mx.rpc.soap.mxml.Operation" />
+
+	<!-- validators -->
+	<component id="Validator"						 	class="mx.validators.Validator"/>
+	<component id="StringValidator" 					class="mx.validators.StringValidator"/>
+	<component id="RegExpValidator" 					class="mx.validators.RegExpValidator"/>
+	<component id="NumberValidator" 					class="mx.validators.NumberValidator"/>
+	<component id="PhoneNumberValidator" 				class="mx.validators.PhoneNumberValidator"/>
+	<component id="DateValidator" 						class="mx.validators.DateValidator"/>
+	<component id="EmailValidator" 						class="mx.validators.EmailValidator"/>
+	<component id="ZipCodeValidator" 					class="mx.validators.ZipCodeValidator"/>
+
+
+</componentPackage>
diff --git a/frameworks/projects/MXRoyaleBase/src/main/royale/MXRoyaleBaseClasses.as b/frameworks/projects/MXRoyaleBase/src/main/royale/MXRoyaleBaseClasses.as
new file mode 100644
index 0000000..5f61d01
--- /dev/null
+++ b/frameworks/projects/MXRoyaleBase/src/main/royale/MXRoyaleBaseClasses.as
@@ -0,0 +1,312 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  Licensed to the Apache Software Foundation (ASF) under one or more
+//  contributor license agreements.  See the NOTICE file distributed with
+//  this work for additional information regarding copyright ownership.
+//  The ASF licenses this file to You under the Apache License, Version 2.0
+//  (the "License"); you may not use this file except in compliance with
+//  the License.  You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+//  Unless required by applicable law or agreed to in writing, software
+//  distributed under the License is distributed on an "AS IS" BASIS,
+//  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//  See the License for the specific language governing permissions and
+//  limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+package
+{
+
+/**
+ *  @private
+ *  This class is used to link additional classes into rpc.swc
+ *  beyond those that are found by dependecy analysis starting
+ *  from the classes specified in manifest.xml.
+ */
+internal class MXRoyaleBaseClasses
+{
+
+
+	import mx.binding.BindabilityInfo; BindabilityInfo;
+	import mx.binding.Binding; Binding;
+	import mx.binding.BindingManager; BindingManager;
+	import mx.binding.IBindingClient; IBindingClient;
+	import mx.binding.utils.ChangeWatcher; ChangeWatcher;
+	import mx.binding.utils.BindingUtils; BindingUtils;
+
+
+	import mx.collections.ArrayCollection;ArrayCollection;
+	import mx.collections.ArrayList;ArrayList;
+	import mx.collections.AsyncListView;AsyncListView;
+	import mx.collections.ComplexFieldChangeWatcher;ComplexFieldChangeWatcher;
+	import mx.collections.CursorBookmark;CursorBookmark;
+	import mx.collections.DefaultSummaryCalculator;DefaultSummaryCalculator;
+	import mx.collections.Grouping;Grouping;
+	import mx.collections.GroupingCollection;GroupingCollection;
+	import mx.collections.GroupingCollection2;GroupingCollection2;
+	import mx.collections.GroupingField;GroupingField;
+	import mx.collections.HierarchicalCollectionView;HierarchicalCollectionView;
+	import mx.collections.HierarchicalCollectionViewCursor;HierarchicalCollectionViewCursor;
+	import mx.collections.HierarchicalData;HierarchicalData;
+	import mx.collections.ICollectionView;ICollectionView;
+	import mx.collections.IComplexSortField;IComplexSortField;
+	import mx.collections.IGroupingCollection;IGroupingCollection;
+	import mx.collections.IGroupingCollection2;IGroupingCollection2;
+	import mx.collections.IHierarchicalCollectionView;IHierarchicalCollectionView;
+	import mx.collections.IHierarchicalCollectionViewCursor;IHierarchicalCollectionViewCursor;
+	import mx.collections.IHierarchicalData;IHierarchicalData;
+	import mx.collections.IList;IList;
+	import mx.collections.ISort;ISort;
+	import mx.collections.ISortField;ISortField;
+	import mx.collections.ISummaryCalculator;ISummaryCalculator;
+	import mx.collections.IViewCursor;IViewCursor;
+	import mx.collections.LeafNodeCursor;LeafNodeCursor;
+	import mx.collections.ListCollectionView;ListCollectionView;
+	import mx.collections.Sort;Sort;
+	import mx.collections.SortField;SortField;
+	import mx.collections.SortFieldCompareTypes;SortFieldCompareTypes;
+	import mx.collections.SummaryField;SummaryField;
+	import mx.collections.SummaryField2;SummaryField2;
+	import mx.collections.SummaryObject;SummaryObject;
+	import mx.collections.SummaryRow;SummaryRow;
+	import mx.collections.XMLListAdapter;XMLListAdapter;
+	import mx.collections.XMLListCollection;XMLListCollection;
+
+	import mx.collections.errors.ItemPendingError; ItemPendingError;
+	import mx.collections.errors.SortError; SortError;
+	import mx.collections.errors.CursorError; CursorError;
+
+
+
+	import mx.core.ClassFactory;ClassFactory;
+	import mx.core.EventPriority;EventPriority;
+	import mx.core.FlexVersion;FlexVersion;
+	import mx.core.FlexGlobals;FlexGlobals;
+	import mx.core.IChildList;IChildList;
+	import mx.core.IFactory;IFactory;
+	import mx.core.IFlexDisplayObject;IFlexDisplayObject;
+	import mx.core.IFlexModule;IFlexModule;
+	import mx.core.IFlexModuleFactory;IFlexModuleFactory;
+	import mx.core.IMXMLObject;IMXMLObject;
+	import mx.core.IPropertyChangeNotifier;IPropertyChangeNotifier;
+	import mx.core.IUIComponent;IUIComponent;
+	import mx.core.IUID;IUID;
+	import mx.core.Keyboard;Keyboard;
+	import mx.core.mx_internal;mx_internal;
+	import mx.core.Singleton;Singleton;
+
+	import mx.data.EncryptedLocalStore;EncryptedLocalStore;
+
+	import mx.errors.EOFError;EOFError;
+	import mx.errors.IllegalOperationError;IllegalOperationError
+	import mx.errors.ScriptTimeoutError;ScriptTimeoutError
+
+
+
+	import mx.events.AsyncErrorEvent;AsyncErrorEvent;
+	import mx.events.CollectionEvent;CollectionEvent;
+	import mx.events.CollectionEventKind;CollectionEventKind;
+	import mx.events.DataEvent;DataEvent;
+	import mx.events.ErrorEvent;ErrorEvent;
+	import mx.events.FlexEvent;FlexEvent;
+	import mx.events.HTTPStatusEvent;HTTPStatusEvent;
+	import mx.events.IndexChangedEvent;IndexChangedEvent;
+	import mx.events.IOErrorEvent;IOErrorEvent;
+	import mx.events.NetStatusEvent;NetStatusEvent;
+	import mx.events.ProgressEvent;ProgressEvent;
+	import mx.events.PropertyChangeEvent;PropertyChangeEvent;
+	import mx.events.PropertyChangeEventKind;PropertyChangeEventKind;
+	import mx.events.ResourceEvent;ResourceEvent;
+	import mx.events.RSLEvent;RSLEvent;
+	import mx.events.SecurityErrorEvent;SecurityErrorEvent;
+	import mx.events.TimerEvent;TimerEvent;
+	import mx.events.ValidationResultEvent;ValidationResultEvent;
+
+
+	import mx.external.ExternalInterface; ExternalInterface;
+
+
+	import mx.formatters.CurrencyFormatter;CurrencyFormatter;
+	import mx.formatters.DateBase;DateBase;
+	import mx.formatters.DateFormatter;DateFormatter;
+	import mx.formatters.Formatter;Formatter;
+	import mx.formatters.IFormatter;IFormatter;
+	import mx.formatters.NumberBase;NumberBase;
+	import mx.formatters.NumberBaseRoundType;NumberBaseRoundType;
+	import mx.formatters.NumberFormatter;mx.formatters.NumberFormatter;
+	import mx.formatters.PhoneFormatter;PhoneFormatter;
+	import mx.formatters.StringFormatter;StringFormatter;
+	import mx.formatters.SwitchSymbolFormatter;SwitchSymbolFormatter;
+	import mx.formatters.ZipCodeFormatter;ZipCodeFormatter;
+
+
+	import mx.geom.Matrix;Matrix;
+
+	import mx.globalization.CurrencyParseResult;CurrencyParseResult;
+	import mx.globalization.DateTimeFormatter;DateTimeFormatter;
+	import mx.globalization.DateTimeNameStyle;DateTimeNameStyle;
+	import mx.globalization.DateTimeStyle;DateTimeStyle;
+	import mx.globalization.LastOperationStatus;LastOperationStatus;
+	import mx.globalization.LocaleID;LocaleID;
+	import mx.globalization.NationalDigitsType;NationalDigitsType;
+	import mx.globalization.NumberFormatter;mx.globalization.NumberFormatter;
+	import mx.globalization.NumberParseResult;NumberParseResult;
+	import mx.globalization.supportClasses.GlobalizationBase;GlobalizationBase;
+
+
+	import mx.logging.Log; Log;
+	import mx.logging.LogLogger; LogLogger;
+	import mx.logging.LogEvent; LogEvent;
+	import mx.logging.LogEventLevel; LogEventLevel;
+	import mx.logging.AbstractTarget; AbstractTarget;
+	import mx.logging.ILogger; ILogger;
+	import mx.logging.ILoggingTarget; ILoggingTarget;
+	import mx.logging.errors.InvalidFilterError; InvalidFilterError;
+	import mx.logging.errors.InvalidCategoryError; InvalidCategoryError;
+	import mx.logging.targets.LineFormattedTarget; LineFormattedTarget;
+	import mx.logging.targets.TraceTarget; TraceTarget;
+
+
+	import mx.managers.CursorManager;CursorManager;
+	import mx.managers.CursorManagerPriority;CursorManagerPriority;
+	import mx.managers.ICursorManager;ICursorManager;
+	import mx.managers.ISystemManager;ISystemManager;
+	import mx.managers.SystemManagerGlobals;SystemManagerGlobals;
+
+
+
+	import mx.messaging.messages.HTTPRequestMessage; HTTPRequestMessage;
+	import mx.messaging.channels.DirectHTTPChannel; DirectHTTPChannel;
+	import mx.messaging.channels.HTTPChannel; HTTPChannel;
+	import mx.messaging.errors.MessageSerializationError; MessageSerializationError;
+	import mx.messaging.messages.AcknowledgeMessage; AcknowledgeMessage;
+	import mx.messaging.messages.AsyncMessage; AsyncMessage;
+	import mx.messaging.messages.CommandMessage; CommandMessage;
+	import mx.messaging.messages.RemotingMessage; RemotingMessage;
+	import mx.messaging.messages.AcknowledgeMessageExt;AcknowledgeMessageExt;
+	import mx.messaging.messages.AsyncMessageExt;AsyncMessageExt;
+	import mx.messaging.messages.CommandMessageExt;CommandMessageExt;
+
+	import mx.modules.IModule; IModule;
+	import mx.modules.IModuleInfo; IModuleInfo;
+
+
+	import mx.net.FileFilter;FileFilter;
+	import mx.net.FileReference;FileReference;
+	import mx.net.FileReferenceList;FileReferenceList;
+	import mx.net.LocalConnection;LocalConnection;
+	import mx.net.NetConnection;NetConnection;
+	import mx.net.ObjectEncoding;ObjectEncoding;
+	import mx.net.Responder;mx.net.Responder;
+	import mx.net.SharedObject;SharedObject;
+	import mx.net.SharedObjectFlushStatus;SharedObjectFlushStatus;
+	import mx.net.SharedObjectJSON;SharedObjectJSON;
+	import mx.net.Socket;Socket;
+	import mx.net.URLLoader;URLLoader;
+	import mx.net.URLLoaderDataFormat;URLLoaderDataFormat;
+	import mx.net.URLRequestMethod;URLRequestMethod;
+	import mx.net.beads.FileUploaderUsingFormData;FileUploaderUsingFormData;
+	import mx.net.supportClasses.ByteArrayFileLoader;ByteArrayFileLoader;
+
+
+	import mx.netmon.NetworkMonitor;NetworkMonitor;
+
+	import mx.resources.IResourceBundle;IResourceBundle;
+	import mx.resources.IResourceManager;IResourceManager;
+	import mx.resources.Locale;Locale;
+	import mx.resources.LocaleSorter;LocaleSorter;
+	import mx.resources.ResourceBundle;ResourceBundle;
+	import mx.resources.ResourceManager;ResourceManager;
+	import mx.resources.ResourceManagerImpl;ResourceManagerImpl;
+
+	import mx.rpc.http.SerializationFilter; SerializationFilter;
+	import mx.rpc.http.AbstractOperation; AbstractOperation;
+	import mx.rpc.http.HTTPMultiService; HTTPMultiService;
+	import mx.rpc.CallResponder; CallResponder;
+	import mx.rpc.http.Operation; Operation;
+	import mx.rpc.Fault; Fault;
+	import mx.rpc.events.FaultEvent; FaultEvent;
+	import mx.rpc.soap.WebService; WebService;
+	import mx.rpc.events.InvokeEvent; InvokeEvent;
+	import mx.rpc.events.ResultEvent; ResultEvent;
+	import mx.rpc.AsyncResponder; AsyncResponder;
+	import mx.rpc.Responder; mx.rpc.Responder;
+	import mx.rpc.http.HTTPService; HTTPService;
+	import mx.rpc.remoting.RemoteObject; RemoteObject;
+	import mx.rpc.remoting.CompressedRemoteObject; CompressedRemoteObject;
+
+
+	//
+	import mx.system.ApplicationDomain;ApplicationDomain;
+	import mx.system.Capabilities;Capabilities;
+	import mx.system.Security;Security;
+	import mx.system.System;System;
+
+
+	import mx.utils.ArrayUtil;ArrayUtil;
+	import mx.utils.Base64Decoder;Base64Decoder;
+	import mx.utils.Base64Encoder;Base64Encoder;
+	import mx.utils.BitFlagUtil;BitFlagUtil;
+	import mx.utils.ByteArray;ByteArray;
+	import mx.utils.DescribeTypeCache;DescribeTypeCache;
+	import mx.utils.Endian;Endian;
+	import mx.utils.HexDecoder;HexDecoder;
+	import mx.utils.HexEncoder;HexEncoder;
+	import mx.utils.IXMLNotifiable;IXMLNotifiable;
+	import mx.utils.NameUtil; NameUtil;
+	import mx.utils.object_proxy;object_proxy;
+	import mx.utils.ObjectProxy;ObjectProxy;
+	import mx.utils.ObjectUtil;ObjectUtil;
+	//@todo : import mx.utils.RPCObjectUtil;RPCObjectUtil;
+	import mx.utils.RPCStringUtil;RPCStringUtil;
+	import mx.utils.RPCUIDUtil;RPCUIDUtil;
+	import mx.utils.StringUtil;StringUtil;
+	import mx.utils.Timer;Timer;
+	import mx.utils.UIDUtil;UIDUtil;
+	import mx.utils.URLUtil;URLUtil;
+	import mx.utils.XMLNotifier;XMLNotifier;
+	import mx.utils.XMLUtil;XMLUtil;
+
+
+
+
+	import mx.validators.DateValidator;DateValidator;
+	import mx.validators.EmailValidator;EmailValidator;
+	import mx.validators.IValidator;IValidator;
+	import mx.validators.IValidatorListener;IValidatorListener;
+	import mx.validators.NumberValidator;NumberValidator;
+	import mx.validators.NumberValidatorDomainType;NumberValidatorDomainType;
+	import mx.validators.PhoneNumberValidator;PhoneNumberValidator;
+	import mx.validators.ZipCodeValidator; ZipCodeValidator;
+	import mx.validators.ZipCodeValidatorDomainType; ZipCodeValidatorDomainType;
+	import mx.validators.RegExpValidationResult;RegExpValidationResult;
+	import mx.validators.RegExpValidator;RegExpValidator;
+	import mx.validators.StringValidator;StringValidator;
+	import mx.validators.ValidationResult;ValidationResult;
+	import mx.validators.Validator;Validator;
+
+
+
+	// --- RpcClassAliasInitializer
+	import org.apache.royale.reflection.registerClassAlias;
+
+
+	registerClassAlias("flex.messaging.messages.CommandMessage", CommandMessage);
+	registerClassAlias("flex.messaging.messages.AcknowledgeMessage", AcknowledgeMessage);
+	registerClassAlias("flex.messaging.messages.AsyncMessage", AsyncMessage);
+	registerClassAlias("flex.messaging.messages.RemotingMessage", RemotingMessage);  
+
+
+	registerClassAlias("DSK", AcknowledgeMessageExt);
+	registerClassAlias("DSA", AsyncMessageExt);
+	registerClassAlias("DSC", CommandMessageExt);
+	// RpcClassAliasInitializer ----------------------------------------
+    
+
+
+}
+
+}
+
diff --git a/frameworks/projects/MXRoyale/src/main/royale/mx/binding/BindabilityInfo.as b/frameworks/projects/MXRoyaleBase/src/main/royale/mx/binding/BindabilityInfo.as
similarity index 100%
rename from frameworks/projects/MXRoyale/src/main/royale/mx/binding/BindabilityInfo.as
rename to frameworks/projects/MXRoyaleBase/src/main/royale/mx/binding/BindabilityInfo.as
diff --git a/frameworks/projects/MXRoyale/src/main/royale/mx/binding/Binding.as b/frameworks/projects/MXRoyaleBase/src/main/royale/mx/binding/Binding.as
similarity index 100%
rename from frameworks/projects/MXRoyale/src/main/royale/mx/binding/Binding.as
rename to frameworks/projects/MXRoyaleBase/src/main/royale/mx/binding/Binding.as
diff --git a/frameworks/projects/MXRoyale/src/main/royale/mx/binding/BindingManager.as b/frameworks/projects/MXRoyaleBase/src/main/royale/mx/binding/BindingManager.as
similarity index 100%
rename from frameworks/projects/MXRoyale/src/main/royale/mx/binding/BindingManager.as
rename to frameworks/projects/MXRoyaleBase/src/main/royale/mx/binding/BindingManager.as
diff --git a/frameworks/projects/MXRoyale/src/main/royale/mx/binding/IBindingClient.as b/frameworks/projects/MXRoyaleBase/src/main/royale/mx/binding/IBindingClient.as
similarity index 100%
rename from frameworks/projects/MXRoyale/src/main/royale/mx/binding/IBindingClient.as
rename to frameworks/projects/MXRoyaleBase/src/main/royale/mx/binding/IBindingClient.as
diff --git a/frameworks/projects/MXRoyale/src/main/royale/mx/binding/utils/BindingUtils.as b/frameworks/projects/MXRoyaleBase/src/main/royale/mx/binding/utils/BindingUtils.as
similarity index 100%
rename from frameworks/projects/MXRoyale/src/main/royale/mx/binding/utils/BindingUtils.as
rename to frameworks/projects/MXRoyaleBase/src/main/royale/mx/binding/utils/BindingUtils.as
diff --git a/frameworks/projects/MXRoyale/src/main/royale/mx/binding/utils/ChangeWatcher.as b/frameworks/projects/MXRoyaleBase/src/main/royale/mx/binding/utils/ChangeWatcher.as
similarity index 100%
rename from frameworks/projects/MXRoyale/src/main/royale/mx/binding/utils/ChangeWatcher.as
rename to frameworks/projects/MXRoyaleBase/src/main/royale/mx/binding/utils/ChangeWatcher.as
diff --git a/frameworks/projects/MXRoyale/src/main/royale/mx/collections/ArrayCollection.as b/frameworks/projects/MXRoyaleBase/src/main/royale/mx/collections/ArrayCollection.as
similarity index 96%
rename from frameworks/projects/MXRoyale/src/main/royale/mx/collections/ArrayCollection.as
rename to frameworks/projects/MXRoyaleBase/src/main/royale/mx/collections/ArrayCollection.as
index f178ef4..26fe7e3 100644
--- a/frameworks/projects/MXRoyale/src/main/royale/mx/collections/ArrayCollection.as
+++ b/frameworks/projects/MXRoyaleBase/src/main/royale/mx/collections/ArrayCollection.as
@@ -1,186 +1,186 @@
-////////////////////////////////////////////////////////////////////////////////
-//
-//  Licensed to the Apache Software Foundation (ASF) under one or more
-//  contributor license agreements.  See the NOTICE file distributed with
-//  this work for additional information regarding copyright ownership.
-//  The ASF licenses this file to You under the Apache License, Version 2.0
-//  (the "License"); you may not use this file except in compliance with
-//  the License.  You may obtain a copy of the License at
-//
-//      http://www.apache.org/licenses/LICENSE-2.0
-//
-//  Unless required by applicable law or agreed to in writing, software
-//  distributed under the License is distributed on an "AS IS" BASIS,
-//  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-//  See the License for the specific language governing permissions and
-//  limitations under the License.
-//
-////////////////////////////////////////////////////////////////////////////////
-
-package mx.collections
-{
-/*
-import flash.system.ApplicationDomain;
-import flash.utils.IDataInput;
-import flash.utils.IDataOutput;
-import flash.utils.IExternalizable;
-
-import mx.core.mx_internal;
-
-use namespace mx_internal;
-*/
-
-import org.apache.royale.utils.net.IExternalizable;
-COMPILE::JS {
-	import org.apache.royale.utils.net.IDataInput;
-	import org.apache.royale.utils.net.IDataOutput;
-}
-COMPILE::SWF{
-	import flash.utils.IDataInput;
-	import flash.utils.IDataOutput;
-}
-
-
-[DefaultProperty("source")]
-
-[RemoteClass(alias="flex.messaging.io.ArrayCollection")]
-
-/**
- *  The ArrayCollection class is a wrapper class that exposes an Array as
- *  a collection that can be accessed and manipulated using the methods
- *  and properties of the <code>ICollectionView</code> or <code>IList</code>
- *  interfaces. Operations on a ArrayCollection instance modify the data source;
- *  for example, if you use the <code>removeItemAt()</code> method on an
- *  ArrayCollection, you remove the item from the underlying Array.
- *
- *  @mxml
- *
- *  <p>The <code>&lt;mx:ArrayCollection&gt;</code> tag inherits all the attributes of its
- *  superclass, and adds the following attributes:</p>
- *
- *  <pre>
- *  &lt;mx:ArrayCollection
- *  <b>Properties</b>
- *  source="null"
- *  /&gt;
- *  </pre>
- *
- *  @example The following code creates a simple ArrayCollection object that
- *  accesses and manipulates an array with a single Object element.
- *  It retrieves the element using the IList interface <code>getItemAt</code>
- *  method and an IViewCursor object that it obtains using the ICollectionView
- *  <code>createCursor</code> method.
- *  <pre>
- *  var myCollection:ArrayCollection = new ArrayCollection([ { first: 'Matt', last: 'Matthews' } ]);
- *  var myCursor:IViewCursor = myCollection.createCursor();
- *  var firstItem:Object = myCollection.getItemAt(0);
- *  var firstItemFromCursor:Object = myCursor.current;
- *  if (firstItem == firstItemFromCursor)
- *        doCelebration();
- *  </pre>
- *
- *  @langversion 3.0
- *  @playerversion Flash 9
- *  @playerversion AIR 1.1
- *  @productversion Flex 3
- */
-public class ArrayCollection extends ListCollectionView implements IExternalizable
-{
-    //include "../core/Version.as";
-
-    //--------------------------------------------------------------------------
-    //
-    //  Constructor
-    //
-    //--------------------------------------------------------------------------
-
-    /**
-     *  Constructor.
-     *
-     *  <p>Creates a new ArrayCollection using the specified source array.
-     *  If no array is specified an empty array will be used.</p>
-     *
-     *  @param source The source Array.
-     *
-     *  @langversion 3.0
-     *  @playerversion Flash 9
-     *  @playerversion AIR 1.1
-     *  @productversion Flex 3
-     */
-    public function ArrayCollection(source:Array = null)
-    {
-        super();
-
-        this.source = source;
-    }
-
-    //--------------------------------------------------------------------------
-    //
-    //  Properties
-    //
-    //--------------------------------------------------------------------------
-		
-    //----------------------------------
-    //  source
-    //----------------------------------
-
-    [Inspectable(category="General", arrayType="Object")]
-    [Bindable("listChanged")] //superclass will fire this
-
-    /**
-     *  The source of data in the ArrayCollection.
-     *  The ArrayCollection object does not represent any changes that you make
-     *  directly to the source array. Always use
-     *  the ICollectionView or IList methods to modify the collection.
-     *
-     *  @langversion 3.0
-     *  @playerversion Flash 9
-     *  @playerversion AIR 1.1
-     *  @productversion Flex 3
-     */
-    public function get source():Array
-    {
-        if (list && (list is ArrayList))
-        {
-            return ArrayList(list).source;
-        }
-        return null;
-    }
-
-    /**
-     *  @private
-     */
-    public function set source(s:Array):void
-    {
-        list = new ArrayList(s);
-    }
-	
-	
-	
-	/**
-	 *  @private
-	 *  Ensures that only the source property is serialized.
-	 */
-	public function readExternal(input:IDataInput):void
-	{
-		if (list is IExternalizable)
-			IExternalizable(list).readExternal(input);
-		else
-			source = input.readObject() as Array;
-	}
-	
-	/**
-	 *  @private
-	 *  Ensures that only the source property is serialized.
-	 */
-	public function writeExternal(output:IDataOutput):void
-	{
-		if (list is IExternalizable)
-			IExternalizable(list).writeExternal(output);
-		else
-			output.writeObject(source);
-	}
-
-}
-
-}
+////////////////////////////////////////////////////////////////////////////////
+//
+//  Licensed to the Apache Software Foundation (ASF) under one or more
+//  contributor license agreements.  See the NOTICE file distributed with
+//  this work for additional information regarding copyright ownership.
+//  The ASF licenses this file to You under the Apache License, Version 2.0
+//  (the "License"); you may not use this file except in compliance with
+//  the License.  You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+//  Unless required by applicable law or agreed to in writing, software
+//  distributed under the License is distributed on an "AS IS" BASIS,
+//  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//  See the License for the specific language governing permissions and
+//  limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+
+package mx.collections
+{
+/*
+import flash.system.ApplicationDomain;
+import flash.utils.IDataInput;
+import flash.utils.IDataOutput;
+import flash.utils.IExternalizable;
+
+import mx.core.mx_internal;
+
+use namespace mx_internal;
+*/
+
+import org.apache.royale.utils.net.IExternalizable;
+COMPILE::JS {
+	import org.apache.royale.utils.net.IDataInput;
+	import org.apache.royale.utils.net.IDataOutput;
+}
+COMPILE::SWF{
+	import flash.utils.IDataInput;
+	import flash.utils.IDataOutput;
+}
+
+
+[DefaultProperty("source")]
+
+[RemoteClass(alias="flex.messaging.io.ArrayCollection")]
+
+/**
+ *  The ArrayCollection class is a wrapper class that exposes an Array as
+ *  a collection that can be accessed and manipulated using the methods
+ *  and properties of the <code>ICollectionView</code> or <code>IList</code>
+ *  interfaces. Operations on a ArrayCollection instance modify the data source;
+ *  for example, if you use the <code>removeItemAt()</code> method on an
+ *  ArrayCollection, you remove the item from the underlying Array.
+ *
+ *  @mxml
+ *
+ *  <p>The <code>&lt;mx:ArrayCollection&gt;</code> tag inherits all the attributes of its
+ *  superclass, and adds the following attributes:</p>
+ *
+ *  <pre>
+ *  &lt;mx:ArrayCollection
+ *  <b>Properties</b>
+ *  source="null"
+ *  /&gt;
+ *  </pre>
+ *
+ *  @example The following code creates a simple ArrayCollection object that
+ *  accesses and manipulates an array with a single Object element.
+ *  It retrieves the element using the IList interface <code>getItemAt</code>
+ *  method and an IViewCursor object that it obtains using the ICollectionView
+ *  <code>createCursor</code> method.
+ *  <pre>
+ *  var myCollection:ArrayCollection = new ArrayCollection([ { first: 'Matt', last: 'Matthews' } ]);
+ *  var myCursor:IViewCursor = myCollection.createCursor();
+ *  var firstItem:Object = myCollection.getItemAt(0);
+ *  var firstItemFromCursor:Object = myCursor.current;
+ *  if (firstItem == firstItemFromCursor)
+ *        doCelebration();
+ *  </pre>
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion Flex 3
+ */
+public class ArrayCollection extends ListCollectionView implements IExternalizable
+{
+    //include "../core/Version.as";
+
+    //--------------------------------------------------------------------------
+    //
+    //  Constructor
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  Constructor.
+     *
+     *  <p>Creates a new ArrayCollection using the specified source array.
+     *  If no array is specified an empty array will be used.</p>
+     *
+     *  @param source The source Array.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    public function ArrayCollection(source:Array = null)
+    {
+        super();
+
+        this.source = source;
+    }
+
+    //--------------------------------------------------------------------------
+    //
+    //  Properties
+    //
+    //--------------------------------------------------------------------------
+		
+    //----------------------------------
+    //  source
+    //----------------------------------
+
+    [Inspectable(category="General", arrayType="Object")]
+    [Bindable("listChanged")] //superclass will fire this
+
+    /**
+     *  The source of data in the ArrayCollection.
+     *  The ArrayCollection object does not represent any changes that you make
+     *  directly to the source array. Always use
+     *  the ICollectionView or IList methods to modify the collection.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    public function get source():Array
+    {
+        if (list && (list is ArrayList))
+        {
+            return ArrayList(list).source;
+        }
+        return null;
+    }
+
+    /**
+     *  @private
+     */
+    public function set source(s:Array):void
+    {
+        list = new ArrayList(s);
+    }
+	
+	
+	
+	/**
+	 *  @private
+	 *  Ensures that only the source property is serialized.
+	 */
+	public function readExternal(input:IDataInput):void
+	{
+		if (list is IExternalizable)
+			IExternalizable(list).readExternal(input);
+		else
+			source = input.readObject() as Array;
+	}
+	
+	/**
+	 *  @private
+	 *  Ensures that only the source property is serialized.
+	 */
+	public function writeExternal(output:IDataOutput):void
+	{
+		if (list is IExternalizable)
+			IExternalizable(list).writeExternal(output);
+		else
+			output.writeObject(source);
+	}
+
+}
+
+}
diff --git a/frameworks/projects/MXRoyale/src/main/royale/mx/collections/ArrayList.as b/frameworks/projects/MXRoyaleBase/src/main/royale/mx/collections/ArrayList.as
similarity index 100%
rename from frameworks/projects/MXRoyale/src/main/royale/mx/collections/ArrayList.as
rename to frameworks/projects/MXRoyaleBase/src/main/royale/mx/collections/ArrayList.as
diff --git a/frameworks/projects/MXRoyale/src/main/royale/mx/collections/AsyncListView.as b/frameworks/projects/MXRoyaleBase/src/main/royale/mx/collections/AsyncListView.as
similarity index 100%
rename from frameworks/projects/MXRoyale/src/main/royale/mx/collections/AsyncListView.as
rename to frameworks/projects/MXRoyaleBase/src/main/royale/mx/collections/AsyncListView.as
diff --git a/frameworks/projects/MXRoyale/src/main/royale/mx/collections/ComplexFieldChangeWatcher.as b/frameworks/projects/MXRoyaleBase/src/main/royale/mx/collections/ComplexFieldChangeWatcher.as
similarity index 100%
rename from frameworks/projects/MXRoyale/src/main/royale/mx/collections/ComplexFieldChangeWatcher.as
rename to frameworks/projects/MXRoyaleBase/src/main/royale/mx/collections/ComplexFieldChangeWatcher.as
diff --git a/frameworks/projects/MXRoyale/src/main/royale/mx/collections/CursorBookmark.as b/frameworks/projects/MXRoyaleBase/src/main/royale/mx/collections/CursorBookmark.as
similarity index 96%
rename from frameworks/projects/MXRoyale/src/main/royale/mx/collections/CursorBookmark.as
rename to frameworks/projects/MXRoyaleBase/src/main/royale/mx/collections/CursorBookmark.as
index 59b1b7a..2d691be 100644
--- a/frameworks/projects/MXRoyale/src/main/royale/mx/collections/CursorBookmark.as
+++ b/frameworks/projects/MXRoyaleBase/src/main/royale/mx/collections/CursorBookmark.as
@@ -1,164 +1,164 @@
-////////////////////////////////////////////////////////////////////////////////
-//
-//  Licensed to the Apache Software Foundation (ASF) under one or more
-//  contributor license agreements.  See the NOTICE file distributed with
-//  this work for additional information regarding copyright ownership.
-//  The ASF licenses this file to You under the Apache License, Version 2.0
-//  (the "License"); you may not use this file except in compliance with
-//  the License.  You may obtain a copy of the License at
-//
-//      http://www.apache.org/licenses/LICENSE-2.0
-//
-//  Unless required by applicable law or agreed to in writing, software
-//  distributed under the License is distributed on an "AS IS" BASIS,
-//  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-//  See the License for the specific language governing permissions and
-//  limitations under the License.
-//
-////////////////////////////////////////////////////////////////////////////////
-
-package mx.collections
-{
-
-/**
- *  Encapsulates the positional aspects of a cursor in an 
- *  <code>ICollectionView</code>.  Bookmarks are used to return a cursor to 
- *  an absolute position within the <code>ICollectionView</code>.
- *
- *  @see mx.collections.IViewCursor#bookmark
- *  @see mx.collections.IViewCursor#seek()
- *  
- *  @langversion 3.0
- *  @playerversion Flash 9
- *  @playerversion AIR 1.1
- *  @productversion Royale 0.9.3
- */
-public class CursorBookmark
-{
-/*     include "../core/Version.as";
- */
-    private static var _first:CursorBookmark;
-    private static var _last:CursorBookmark;
-    private static var _current:CursorBookmark;
-    
-    /**
-     *  A bookmark for the first item in an <code>ICollectionView</code>.
-     *
-     *  @return The bookmark to the first item.
-     *  
-     *  @langversion 3.0
-     *  @playerversion Flash 9
-     *  @playerversion AIR 1.1
-     *  @productversion Royale 0.9.3
-     */
-    public static function get FIRST():CursorBookmark
-    {
-        if (!_first)
-            _first = new CursorBookmark("${F}");
-        return _first;
-    }
-    
-    /**
-     *  A bookmark for the last item in an <code>ICollectionView</code>.
-     * If the view has no items, the cursor is at this bookmark.
-     *
-     *  @return The bookmark to the last item.
-     *  
-     *  @langversion 3.0
-     *  @playerversion Flash 9
-     *  @playerversion AIR 1.1
-     *  @productversion Royale 0.9.3
-     */
-    public static function get LAST():CursorBookmark
-    {
-        if (!_last)
-            _last = new CursorBookmark("${L}");
-        return _last;
-    }
-    
-    /**
-     *  A bookmark representing the current item for the <code>IViewCursor</code> in
-     *  an <code>ICollectionView</code>.
-     *
-     *  @return The bookmark to the current item.
-     *  
-     *  @langversion 3.0
-     *  @playerversion Flash 9
-     *  @playerversion AIR 1.1
-     *  @productversion Royale 0.9.3
-     */
-    public static function get CURRENT():CursorBookmark
-    {
-        if (!_current)
-            _current = new CursorBookmark("${C}");
-        return _current;
-    }
-    
-    /**
-     *  Creates a new instance of a bookmark with the specified value.
-     *
-     *  @param value The value of this bookmark.
-     *  
-     *  @langversion 3.0
-     *  @playerversion Flash 9
-     *  @playerversion AIR 1.1
-     *  @productversion Royale 0.9.3
-     */
-    public function CursorBookmark(value:Object)
-    {
-        super();
-        _value = value;
-    }
-    
-    //--------------------------------------------------------------------------
-    // 
-    // Properties
-    //
-    //--------------------------------------------------------------------------
-    
-    //----------------------------------
-    // value
-    //----------------------------------
-
-    private var _value:Object;
-    
-    /**
-     *  The underlying marker representation of the bookmark.
-     *  This value is generally understood only by the <code>IViewCursor</code>
-     *  or <code>ICollectionView</code> implementation.
-     *  
-     *  @langversion 3.0
-     *  @playerversion Flash 9
-     *  @playerversion AIR 1.1
-     *  @productversion Royale 0.9.3
-     */
-    public function get value():Object
-    {
-        return _value;
-    }
-    
-    //--------------------------------------------------------------------------
-    // 
-    // Methods
-    //
-    //--------------------------------------------------------------------------
-    
-    /**
-     *  Classes that extend CursorBookmark override this method to
-     *  return the approximate index of the item represented by this
-     *  bookmark in its view.
-     *
-     *  @return -1
-     *
-     *  @langversion 3.0
-     *  @playerversion Flash 9
-     *  @playerversion AIR 1.1
-     *  @productversion Royale 0.9.3
-     */
-    public function getViewIndex():int
-    {
-        return -1;
-    }
-}
-
-}
+////////////////////////////////////////////////////////////////////////////////
+//
+//  Licensed to the Apache Software Foundation (ASF) under one or more
+//  contributor license agreements.  See the NOTICE file distributed with
+//  this work for additional information regarding copyright ownership.
+//  The ASF licenses this file to You under the Apache License, Version 2.0
+//  (the "License"); you may not use this file except in compliance with
+//  the License.  You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+//  Unless required by applicable law or agreed to in writing, software
+//  distributed under the License is distributed on an "AS IS" BASIS,
+//  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//  See the License for the specific language governing permissions and
+//  limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+
+package mx.collections
+{
+
+/**
+ *  Encapsulates the positional aspects of a cursor in an 
+ *  <code>ICollectionView</code>.  Bookmarks are used to return a cursor to 
+ *  an absolute position within the <code>ICollectionView</code>.
+ *
+ *  @see mx.collections.IViewCursor#bookmark
+ *  @see mx.collections.IViewCursor#seek()
+ *  
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion Royale 0.9.3
+ */
+public class CursorBookmark
+{
+/*     include "../core/Version.as";
+ */
+    private static var _first:CursorBookmark;
+    private static var _last:CursorBookmark;
+    private static var _current:CursorBookmark;
+    
+    /**
+     *  A bookmark for the first item in an <code>ICollectionView</code>.
+     *
+     *  @return The bookmark to the first item.
+     *  
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Royale 0.9.3
+     */
+    public static function get FIRST():CursorBookmark
+    {
+        if (!_first)
+            _first = new CursorBookmark("${F}");
+        return _first;
+    }
+    
+    /**
+     *  A bookmark for the last item in an <code>ICollectionView</code>.
+     * If the view has no items, the cursor is at this bookmark.
+     *
+     *  @return The bookmark to the last item.
+     *  
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Royale 0.9.3
+     */
+    public static function get LAST():CursorBookmark
+    {
+        if (!_last)
+            _last = new CursorBookmark("${L}");
+        return _last;
+    }
+    
+    /**
+     *  A bookmark representing the current item for the <code>IViewCursor</code> in
+     *  an <code>ICollectionView</code>.
+     *
+     *  @return The bookmark to the current item.
+     *  
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Royale 0.9.3
+     */
+    public static function get CURRENT():CursorBookmark
+    {
+        if (!_current)
+            _current = new CursorBookmark("${C}");
+        return _current;
+    }
+    
+    /**
+     *  Creates a new instance of a bookmark with the specified value.
+     *
+     *  @param value The value of this bookmark.
+     *  
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Royale 0.9.3
+     */
+    public function CursorBookmark(value:Object)
+    {
+        super();
+        _value = value;
+    }
+    
+    //--------------------------------------------------------------------------
+    // 
+    // Properties
+    //
+    //--------------------------------------------------------------------------
+    
+    //----------------------------------
+    // value
+    //----------------------------------
+
+    private var _value:Object;
+    
+    /**
+     *  The underlying marker representation of the bookmark.
+     *  This value is generally understood only by the <code>IViewCursor</code>
+     *  or <code>ICollectionView</code> implementation.
+     *  
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Royale 0.9.3
+     */
+    public function get value():Object
+    {
+        return _value;
+    }
+    
+    //--------------------------------------------------------------------------
+    // 
+    // Methods
+    //
+    //--------------------------------------------------------------------------
+    
+    /**
+     *  Classes that extend CursorBookmark override this method to
+     *  return the approximate index of the item represented by this
+     *  bookmark in its view.
+     *
+     *  @return -1
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Royale 0.9.3
+     */
+    public function getViewIndex():int
+    {
+        return -1;
+    }
+}
+
+}
diff --git a/frameworks/projects/MXRoyale/src/main/royale/mx/collections/DefaultSummaryCalculator.as b/frameworks/projects/MXRoyaleBase/src/main/royale/mx/collections/DefaultSummaryCalculator.as
similarity index 100%
rename from frameworks/projects/MXRoyale/src/main/royale/mx/collections/DefaultSummaryCalculator.as
rename to frameworks/projects/MXRoyaleBase/src/main/royale/mx/collections/DefaultSummaryCalculator.as
diff --git a/frameworks/projects/MXRoyale/src/main/royale/mx/collections/Grouping.as b/frameworks/projects/MXRoyaleBase/src/main/royale/mx/collections/Grouping.as
similarity index 100%
rename from frameworks/projects/MXRoyale/src/main/royale/mx/collections/Grouping.as
rename to frameworks/projects/MXRoyaleBase/src/main/royale/mx/collections/Grouping.as
diff --git a/frameworks/projects/MXRoyale/src/main/royale/mx/collections/GroupingCollection.as b/frameworks/projects/MXRoyaleBase/src/main/royale/mx/collections/GroupingCollection.as
similarity index 100%
rename from frameworks/projects/MXRoyale/src/main/royale/mx/collections/GroupingCollection.as
rename to frameworks/projects/MXRoyaleBase/src/main/royale/mx/collections/GroupingCollection.as
diff --git a/frameworks/projects/MXRoyale/src/main/royale/mx/collections/GroupingCollection2.as b/frameworks/projects/MXRoyaleBase/src/main/royale/mx/collections/GroupingCollection2.as
similarity index 100%
rename from frameworks/projects/MXRoyale/src/main/royale/mx/collections/GroupingCollection2.as
rename to frameworks/projects/MXRoyaleBase/src/main/royale/mx/collections/GroupingCollection2.as
diff --git a/frameworks/projects/MXRoyale/src/main/royale/mx/collections/GroupingField.as b/frameworks/projects/MXRoyaleBase/src/main/royale/mx/collections/GroupingField.as
similarity index 97%
rename from frameworks/projects/MXRoyale/src/main/royale/mx/collections/GroupingField.as
rename to frameworks/projects/MXRoyaleBase/src/main/royale/mx/collections/GroupingField.as
index 0e082e8..b5619ad 100644
--- a/frameworks/projects/MXRoyale/src/main/royale/mx/collections/GroupingField.as
+++ b/frameworks/projects/MXRoyaleBase/src/main/royale/mx/collections/GroupingField.as
@@ -1,491 +1,491 @@
-////////////////////////////////////////////////////////////////////////////////
-//
-//  Licensed to the Apache Software Foundation (ASF) under one or more
-//  contributor license agreements.  See the NOTICE file distributed with
-//  this work for additional information regarding copyright ownership.
-//  The ASF licenses this file to You under the Apache License, Version 2.0
-//  (the "License"); you may not use this file except in compliance with
-//  the License.  You may obtain a copy of the License at
-//
-//      http://www.apache.org/licenses/LICENSE-2.0
-//
-//  Unless required by applicable law or agreed to in writing, software
-//  distributed under the License is distributed on an "AS IS" BASIS,
-//  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-//  See the License for the specific language governing permissions and
-//  limitations under the License.
-//
-////////////////////////////////////////////////////////////////////////////////
-
-package mx.collections
-{
-
-//--------------------------------------
-//  Other metadata
-//--------------------------------------
-
-[DefaultProperty("summaries")]
-
-/**
- *  The GroupingField class represents individual data fields 
- *  that you use to group flat data for display by the AdvancedDataGrid control. 
- *
- *  <p>To populate the AdvancedDataGrid control with grouped data, 
- *  you create an instance of the GroupingCollection class from your flat data, 
- *  and then pass that GroupingCollection instance to the data provider 
- *  of the AdvancedDataGrid control. 
- *  To specify the grouping fields of your flat data, 
- *  you pass a Grouping instance to 
- *  the <code>GroupingCollection.grouping</code> property. 
- *  The Grouping instance contains an Array of GroupingField instances, 
- *  one per grouping field. </p>
- *
- *  <p>The following example uses the Grouping class to define
- *  two grouping fields: Region and Territory.</p>
- *
- *  <pre>
- *  &lt;mx:AdvancedDataGrid id=&quot;myADG&quot;    
- *    &lt;mx:dataProvider&gt; 
- *      &lt;mx:GroupingCollection id=&quot;gc&quot; source=&quot;{dpFlat}&quot;&gt; 
- *        &lt;mx:grouping&gt; 
- *          &lt;mx:Grouping&gt; 
- *            &lt;mx:GroupingField name=&quot;Region&quot;/&gt; 
- *            &lt;mx:GroupingField name=&quot;Territory&quot;/&gt; 
- *          &lt;/mx:Grouping&gt; 
- *        &lt;/mx:grouping&gt; 
- *      &lt;/mx:GroupingCollection&gt; 
- *    &lt;/mx:dataProvider&gt;  
- *     
- *    &lt;mx:columns&gt; 
- *      &lt;mx:AdvancedDataGridColumn dataField=&quot;Region&quot;/&gt; 
- *      &lt;mx:AdvancedDataGridColumn dataField=&quot;Territory&quot;/&gt; 
- *      &lt;mx:AdvancedDataGridColumn dataField=&quot;Territory_Rep&quot;/&gt; 
- *      &lt;mx:AdvancedDataGridColumn dataField=&quot;Actual&quot;/&gt; 
- *      &lt;mx:AdvancedDataGridColumn dataField=&quot;Estimate&quot;/&gt; 
- *    &lt;/mx:columns&gt; 
- *  &lt;/mx:AdvancedDataGrid&gt;
- *  </pre>
- *
- *  @mxml
- *
- *  The <code>&lt;mx.GroupingField&gt;</code> inherits all the tag attributes of its superclass, 
- *  and defines the following tag attributes:</p>
- *
- *  <pre>
- *  &lt;mx:GroupingField
- *  <b>Properties </b>
- *    caseInsensitive="false|true"
- *    compareFunction="<i>No default</i>"
- *    descending="false|true"
- *    groupingFunction="<i>No default</i>"
- *    groupingObjectFunction="<i>No default</i>"
- *    name="null"
- *    numeric="false|true"
- *    summaries="<i>No default</i>"
- *  /&gt;
- *  </pre>
- * 
- *  @see mx.controls.AdvancedDataGrid
- *  @see mx.collections.GroupingCollection
- *  @see mx.collections.Grouping
- *  
- *  @langversion 3.0
- *  @playerversion Flash 9
- *  @playerversion AIR 1.1
- *  @productversion Royale 0.9.3
- *  @royalesuppresspublicvarwarning
- */
-public class GroupingField
-{
-/*     include "../core/Version.as";
- */
-    //--------------------------------------------------------------------------
-    //
-    //  Constructor
-    //
-    //--------------------------------------------------------------------------
-
-    /**
-     *  Constructor.
-     *
-     *  @param name The name of the property that this field uses for
-     *              comparison.
-     *              If the object is a simple type, pass <code>null</code>.
-     *  @param caseInsensitive When sorting strings, tells the comparitor
-     *              whether to ignore the case of the values.
-     *  @param descending Tells the comparator whether to arrange items in
-     *              descending order.
-     *  @param numeric Tells the comparitor whether to compare sort items as
-     *              numbers, instead of alphabetically.
-     *  
-     *  @langversion 3.0
-     *  @playerversion Flash 9
-     *  @playerversion AIR 1.1
-     *  @productversion Royale 0.9.3
-     */
-    public function GroupingField(name:String=null,
-                                caseInsensitive:Boolean=false,
-                                descending:Boolean=false,
-                                numeric:Boolean=false)
-    {
-        super();
-
-        _name = name;
-        _caseInsensitive = caseInsensitive;
-        _descending = descending;
-        _numeric = numeric;
-    }
-    
-    //--------------------------------------------------------------------------
-    //
-    //  Properties
-    //
-    //--------------------------------------------------------------------------
-
-    //---------------------------------
-    //  caseInsensitive
-    //---------------------------------
-
-    /**
-     *  @private
-     *  Storage for the caseInsensitive property.
-     */
-    private var _caseInsensitive:Boolean;
-
-    [Inspectable(category="General")]
-    /**
-     *  Set to <code>true</code> if the sort for this field should be case-insensitive.
-     *
-     *  @default false
-     *  
-     *  @langversion 3.0
-     *  @playerversion Flash 9
-     *  @playerversion AIR 1.1
-     *  @productversion Royale 0.9.3
-     */
-    public function get caseInsensitive():Boolean
-    {
-        return _caseInsensitive;
-    }
-
-    /**
-     *  @private
-     */
-    public function set caseInsensitive(value:Boolean):void
-    {
-        if (value != _caseInsensitive)
-        {
-            _caseInsensitive = value;
-        }
-    }
-
-    //---------------------------------
-    //  compareFunction
-    //---------------------------------
-
-    /**
-     *  @private
-     *  Storage for the compareFunction property.
-     */
-    private var _compareFunction:Function;
-
-    [Inspectable(category="General")]
-    /**
-     *  The function that compares two items during a sort of items for the
-     *  associated collection. If you specify a <code>compareFunction</code>
-     *  property in a Grouping object, Flex ignores any <code>compareFunction</code>
-     *  properties of the GroupingField objects.
-     *
-     *  <p>The compare function must have the following signature:</p>
-     *
-     *  <pre>function myCompare(a:Object, b:Object):int</pre>
-     *
-     *  <p>This function must return the following values:</p>
-     *   <ul>
-     *        <li>-1, if <code>a</code> should appear before <code>b</code> in
-     *        the sorted sequence.</li>
-     *        <li>0, if <code>a</code> equals <code>b</code>.</li>
-     *        <li>1, if <code>a</code> should appear after <code>b</code> in the
-     *        sorted sequence.</li>
-     *  </ul>
-     *
-     *  <p>The default value is an internal compare function that can perform 
-     *  a string, numeric, or date comparison in ascending or descending order, 
-     *  with case-sensitive or case-insensitive string comparisons.
-     *  Specify your own function only if you need a custom comparison algorithm.
-     *  This is normally only the case if a calculated field is used in a display.</p>
-     *
-     *  
-     *  @langversion 3.0
-     *  @playerversion Flash 9
-     *  @playerversion AIR 1.1
-     *  @productversion Royale 0.9.3
-     */
-    public function get compareFunction():Function
-    {
-        return _compareFunction;
-    }
-
-    /**
-     *  @private
-     */
-    public function set compareFunction(c:Function):void
-    {
-        _compareFunction = c;
-    }
-    
-    //---------------------------------
-    //  descending
-    //---------------------------------
-    
-    /**
-     *  @private
-     *  Storage for the descending property.
-     */
-    private var _descending:Boolean;
-
-    [Inspectable(category="General")]
-
-    /**
-     *  Set to <code>true</code> if the sort for this field should be 
-     *  in descending order.
-     *
-     *  @default false
-     *  
-     *  @langversion 3.0
-     *  @playerversion Flash 9
-     *  @playerversion AIR 1.1
-     *  @productversion Royale 0.9.3
-     */
-    public function get descending():Boolean
-    {
-        return _descending;
-    }
-
-    /**
-     *  @private
-     */
-    public function set descending(value:Boolean):void
-    {
-        if (_descending != value)
-        {
-            _descending = value;
-        }
-    }
-
-    //---------------------------------
-    //  name
-    //---------------------------------
-
-    /**
-     *  @private
-     *  Storage for the name property.
-     */
-    private var _name:String;
-
-    [Inspectable(category="General")]
-
-    /**
-     *  The name of the field to be sorted.
-     *
-     *  @default null
-     *  
-     *  @langversion 3.0
-     *  @playerversion Flash 9
-     *  @playerversion AIR 1.1
-     *  @productversion Royale 0.9.3
-     */
-    public function get name():String
-    {
-        return _name;
-    }
-
-    /**
-     *  @private
-     */
-    public function set name(n:String):void
-    {
-        _name = n;
-    }
-
-    //---------------------------------
-    //  numeric
-    //---------------------------------
-
-    /**
-     *  @private
-     *  Storage for the numeric property.
-     */
-    private var _numeric:Boolean;
-
-    [Inspectable(category="General")]
-    /**
-     *  Specifies that if the field being sorted contains numeric
-     *  (Number/int/uint) values, or String representations of numeric values, 
-     *  the comparitor uses a numeric comparison.
-     *  If this property is <code>false</code>, fields with String representations
-     *  of numbers are sorted using String comparison, so 100 precedes 99, 
-     *  because "1" is a lower string value than "9".
-     *
-     *  @default false
-     *  
-     *  @langversion 3.0
-     *  @playerversion Flash 9
-     *  @playerversion AIR 1.1
-     *  @productversion Royale 0.9.3
-     */
-    public function get numeric():Boolean
-    {
-        return _numeric;
-    }
-    
-    /**
-     *  @private
-     */
-    public function set numeric(value:Boolean):void
-    {
-        if (_numeric != value)
-        {
-            _numeric = value;
-        }
-    }
-    
-    //---------------------------------
-    //  groupingFunction
-    //---------------------------------
-    
-    /**
-     *  A function that determines the label for this group.  
-     *  By default,
-     *  the group displays the text for the field in the data that matches the
-     *  filed specified by the <code>name</code> property.  
-     *  However, sometimes you want to group the items based on
-     *  more than one field in the data, or group based on something that is
-     *  not a simple String field.
-     *  In such a case, you specify a callback function by using 
-     *  the <code>groupingFunction</code> property.
-     *
-     *  <p>A callback function might convert a number for the month into 
-     *  the String for the month, or group multiple items into a single group
-     *  based on some criteria other than the actual value of the field.</p>
-     *
-     *  <p>For the GroupField, the method signature has the following form:</p>
-     *
-     *  <pre>groupingFunction(item:Object, field:GroupField):String</pre>
-     *
-     *  <p>Where <code>item</code> contains the data item object, and
-     *  <code>field</code> contains the GroupField object.</p>
-     * 
-     *  For example, a <code>groupingFunction</code> which returns the
-     *  first character as the group name can be written as - 
-     *  <pre>
-     *  private function groupFunc(item:Object, field:GroupingField):String
-     *  {
-     *      return item[field.name].toString().substr(0, 1);
-     *  }
-     *  </pre>
-     * 
-     *  
-     *  @langversion 3.0
-     *  @playerversion Flash 9
-     *  @playerversion AIR 1.1
-     *  @productversion Royale 0.9.3
-     */
-    public var groupingFunction:Function;
-    
-    //---------------------------------
-    //  groupingObjectFunction
-    //---------------------------------
-    
-    /**
-     *  A callback function to run on each group node to determine the 
-     *  grouping object.  
-     *  By default, a new Object will be created for group nodes.
-     *
-     *  <p>You can supply a <code>groupingObjectFunction</code> that provides the 
-     *  appropriate Object for group nodes.</p>
-     *
-     *  <p>The method signature is:</p>
-     *  <pre>
-     *  myGroupObjectFunction(label:String):Object</pre>
-     * 
-     *  <p>Where <code>label</code> contains the value that will be
-     *  shown for that group node. 
-     *  The function returns an Object that will be used for group nodes. </p>
-     * 
-     *  For example, a <code>groupingObjectFunction</code> which returns an Object
-     *  containing a "name" property with value as "Bob" can be written as - 
-     *  <pre>
-     *  private function groupObjFunction(label:String):Object
-     *  {
-     *      var obj:Object = {};
-     *      obj.name = "Bob";
-     *
-     *      return obj;
-     *  }
-     *  </pre>
-     *
-     *  
-     *  @langversion 3.0
-     *  @playerversion Flash 9
-     *  @playerversion AIR 1.1
-     *  @productversion Royale 0.9.3
-     */
-    public var groupingObjectFunction:Function;
-    
-    //---------------------------------
-    //  summaries
-    //---------------------------------
-    
-    /**
-     *  Array of SummaryRow instances that define the group-level summaries.
-     *  Specify one or more SummaryRow instances to define the data summaries, 
-     *  as the following example shows:
-     *
-     *  <pre>
-     *  &lt;mx:AdvancedDataGrid id="myADG" 
-     *     width="100%" height="100%" 
-     *     initialize="gc.refresh();"&gt;        
-     *     &lt;mx:dataProvider&gt;
-     *         &lt;mx:GroupingCollection id="gc" source="{dpFlat}"&gt;
-     *             &lt;mx:Grouping&gt;
-     *                 &lt;mx:GroupingField name="Region"&gt;
-     *                   &lt;mx:summaries&gt;
-     *                       &lt;mx:SummaryRow summaryPlacement="group"&gt;
-     *                         &lt;mx:fields&gt;
-     *                             &lt;mx:SummaryField dataField="Actual" 
-     *                                 label="Min Actual" operation="MIN"/&gt;
-     *                             &lt;mx:SummaryField dataField="Actual" 
-     *                                 label="Max Actual" operation="MAX"/&gt;
-     *                         &lt;/mx:fields&gt;
-     *                       &lt;/mx:SummaryRow&gt;
-     *                     &lt;/mx:summaries&gt;
-     *                 &lt;/mx:GroupingField&gt;
-     *             &lt;/mx:Grouping&gt;
-     *         &lt;/mx:GroupingCollection&gt;
-     *     &lt;/mx:dataProvider&gt;        
-     *     
-     *     &lt;mx:columns&gt;
-     *         &lt;mx:AdvancedDataGridColumn dataField="Region"/&gt;
-     *         &lt;mx:AdvancedDataGridColumn dataField="Territory_Rep"
-     *             headerText="Territory Rep"/&gt;
-     *         &lt;mx:AdvancedDataGridColumn dataField="Actual"/&gt;
-     *         &lt;mx:AdvancedDataGridColumn dataField="Estimate"/&gt;
-     *         &lt;mx:AdvancedDataGridColumn dataField="Min Actual"/&gt;
-     *         &lt;mx:AdvancedDataGridColumn dataField="Max Actual"/&gt;
-     *     &lt;/mx:columns&gt;
-     *  &lt;/mx:AdvancedDataGrid&gt;  
-     *  </pre>
-     *
-     *  @see mx.collections.SummaryRow
-     *  @see mx.collections.SummaryField
-     *  
-     *  @langversion 3.0
-     *  @playerversion Flash 9
-     *  @playerversion AIR 1.1
-     *  @productversion Royale 0.9.3
-     */
-    public var summaries:Array;
-}
-
-}
+////////////////////////////////////////////////////////////////////////////////
+//
+//  Licensed to the Apache Software Foundation (ASF) under one or more
+//  contributor license agreements.  See the NOTICE file distributed with
+//  this work for additional information regarding copyright ownership.
+//  The ASF licenses this file to You under the Apache License, Version 2.0
+//  (the "License"); you may not use this file except in compliance with
+//  the License.  You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+//  Unless required by applicable law or agreed to in writing, software
+//  distributed under the License is distributed on an "AS IS" BASIS,
+//  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//  See the License for the specific language governing permissions and
+//  limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+
+package mx.collections
+{
+
+//--------------------------------------
+//  Other metadata
+//--------------------------------------
+
+[DefaultProperty("summaries")]
+
+/**
+ *  The GroupingField class represents individual data fields 
+ *  that you use to group flat data for display by the AdvancedDataGrid control. 
+ *
+ *  <p>To populate the AdvancedDataGrid control with grouped data, 
+ *  you create an instance of the GroupingCollection class from your flat data, 
+ *  and then pass that GroupingCollection instance to the data provider 
+ *  of the AdvancedDataGrid control. 
+ *  To specify the grouping fields of your flat data, 
+ *  you pass a Grouping instance to 
+ *  the <code>GroupingCollection.grouping</code> property. 
+ *  The Grouping instance contains an Array of GroupingField instances, 
+ *  one per grouping field. </p>
+ *
+ *  <p>The following example uses the Grouping class to define
+ *  two grouping fields: Region and Territory.</p>
+ *
+ *  <pre>
+ *  &lt;mx:AdvancedDataGrid id=&quot;myADG&quot;    
+ *    &lt;mx:dataProvider&gt; 
+ *      &lt;mx:GroupingCollection id=&quot;gc&quot; source=&quot;{dpFlat}&quot;&gt; 
+ *        &lt;mx:grouping&gt; 
+ *          &lt;mx:Grouping&gt; 
+ *            &lt;mx:GroupingField name=&quot;Region&quot;/&gt; 
+ *            &lt;mx:GroupingField name=&quot;Territory&quot;/&gt; 
+ *          &lt;/mx:Grouping&gt; 
+ *        &lt;/mx:grouping&gt; 
+ *      &lt;/mx:GroupingCollection&gt; 
+ *    &lt;/mx:dataProvider&gt;  
+ *     
+ *    &lt;mx:columns&gt; 
+ *      &lt;mx:AdvancedDataGridColumn dataField=&quot;Region&quot;/&gt; 
+ *      &lt;mx:AdvancedDataGridColumn dataField=&quot;Territory&quot;/&gt; 
+ *      &lt;mx:AdvancedDataGridColumn dataField=&quot;Territory_Rep&quot;/&gt; 
+ *      &lt;mx:AdvancedDataGridColumn dataField=&quot;Actual&quot;/&gt; 
+ *      &lt;mx:AdvancedDataGridColumn dataField=&quot;Estimate&quot;/&gt; 
+ *    &lt;/mx:columns&gt; 
+ *  &lt;/mx:AdvancedDataGrid&gt;
+ *  </pre>
+ *
+ *  @mxml
+ *
+ *  The <code>&lt;mx.GroupingField&gt;</code> inherits all the tag attributes of its superclass, 
+ *  and defines the following tag attributes:</p>
+ *
+ *  <pre>
+ *  &lt;mx:GroupingField
+ *  <b>Properties </b>
+ *    caseInsensitive="false|true"
+ *    compareFunction="<i>No default</i>"
+ *    descending="false|true"
+ *    groupingFunction="<i>No default</i>"
+ *    groupingObjectFunction="<i>No default</i>"
+ *    name="null"
+ *    numeric="false|true"
+ *    summaries="<i>No default</i>"
+ *  /&gt;
+ *  </pre>
+ * 
+ *  @see mx.controls.AdvancedDataGrid
+ *  @see mx.collections.GroupingCollection
+ *  @see mx.collections.Grouping
+ *  
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion Royale 0.9.3
+ *  @royalesuppresspublicvarwarning
+ */
+public class GroupingField
+{
+/*     include "../core/Version.as";
+ */
+    //--------------------------------------------------------------------------
+    //
+    //  Constructor
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  Constructor.
+     *
+     *  @param name The name of the property that this field uses for
+     *              comparison.
+     *              If the object is a simple type, pass <code>null</code>.
+     *  @param caseInsensitive When sorting strings, tells the comparitor
+     *              whether to ignore the case of the values.
+     *  @param descending Tells the comparator whether to arrange items in
+     *              descending order.
+     *  @param numeric Tells the comparitor whether to compare sort items as
+     *              numbers, instead of alphabetically.
+     *  
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Royale 0.9.3
+     */
+    public function GroupingField(name:String=null,
+                                caseInsensitive:Boolean=false,
+                                descending:Boolean=false,
+                                numeric:Boolean=false)
+    {
+        super();
+
+        _name = name;
+        _caseInsensitive = caseInsensitive;
+        _descending = descending;
+        _numeric = numeric;
+    }
+    
+    //--------------------------------------------------------------------------
+    //
+    //  Properties
+    //
+    //--------------------------------------------------------------------------
+
+    //---------------------------------
+    //  caseInsensitive
+    //---------------------------------
+
+    /**
+     *  @private
+     *  Storage for the caseInsensitive property.
+     */
+    private var _caseInsensitive:Boolean;
+
+    [Inspectable(category="General")]
+    /**
+     *  Set to <code>true</code> if the sort for this field should be case-insensitive.
+     *
+     *  @default false
+     *  
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Royale 0.9.3
+     */
+    public function get caseInsensitive():Boolean
+    {
+        return _caseInsensitive;
+    }
+
+    /**
+     *  @private
+     */
+    public function set caseInsensitive(value:Boolean):void
+    {
+        if (value != _caseInsensitive)
+        {
+            _caseInsensitive = value;
+        }
+    }
+
+    //---------------------------------
+    //  compareFunction
+    //---------------------------------
+
+    /**
+     *  @private
+     *  Storage for the compareFunction property.
+     */
+    private var _compareFunction:Function;
+
+    [Inspectable(category="General")]
+    /**
+     *  The function that compares two items during a sort of items for the
+     *  associated collection. If you specify a <code>compareFunction</code>
+     *  property in a Grouping object, Flex ignores any <code>compareFunction</code>
+     *  properties of the GroupingField objects.
+     *
+     *  <p>The compare function must have the following signature:</p>
+     *
+     *  <pre>function myCompare(a:Object, b:Object):int</pre>
+     *
+     *  <p>This function must return the following values:</p>
+     *   <ul>
+     *        <li>-1, if <code>a</code> should appear before <code>b</code> in
+     *        the sorted sequence.</li>
+     *        <li>0, if <code>a</code> equals <code>b</code>.</li>
+     *        <li>1, if <code>a</code> should appear after <code>b</code> in the
+     *        sorted sequence.</li>
+     *  </ul>
+     *
+     *  <p>The default value is an internal compare function that can perform 
+     *  a string, numeric, or date comparison in ascending or descending order, 
+     *  with case-sensitive or case-insensitive string comparisons.
+     *  Specify your own function only if you need a custom comparison algorithm.
+     *  This is normally only the case if a calculated field is used in a display.</p>
+     *
+     *  
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Royale 0.9.3
+     */
+    public function get compareFunction():Function
+    {
+        return _compareFunction;
+    }
+
+    /**
+     *  @private
+     */
+    public function set compareFunction(c:Function):void
+    {
+        _compareFunction = c;
+    }
+    
+    //---------------------------------
+    //  descending
+    //---------------------------------
+    
+    /**
+     *  @private
+     *  Storage for the descending property.
+     */
+    private var _descending:Boolean;
+
+    [Inspectable(category="General")]
+
+    /**
+     *  Set to <code>true</code> if the sort for this field should be 
+     *  in descending order.
+     *
+     *  @default false
+     *  
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Royale 0.9.3
+     */
+    public function get descending():Boolean
+    {
+        return _descending;
+    }
+
+    /**
+     *  @private
+     */
+    public function set descending(value:Boolean):void
+    {
+        if (_descending != value)
+        {
+            _descending = value;
+        }
+    }
+
+    //---------------------------------
+    //  name
+    //---------------------------------
+
+    /**
+     *  @private
+     *  Storage for the name property.
+     */
+    private var _name:String;
+
+    [Inspectable(category="General")]
+
+    /**
+     *  The name of the field to be sorted.
+     *
+     *  @default null
+     *  
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Royale 0.9.3
+     */
+    public function get name():String
+    {
+        return _name;
+    }
+
+    /**
+     *  @private
+     */
+    public function set name(n:String):void
+    {
+        _name = n;
+    }
+
+    //---------------------------------
+    //  numeric
+    //---------------------------------
+
+    /**
+     *  @private
+     *  Storage for the numeric property.
+     */
+    private var _numeric:Boolean;
+
+    [Inspectable(category="General")]
+    /**
+     *  Specifies that if the field being sorted contains numeric
+     *  (Number/int/uint) values, or String representations of numeric values, 
+     *  the comparitor uses a numeric comparison.
+     *  If this property is <code>false</code>, fields with String representations
+     *  of numbers are sorted using String comparison, so 100 precedes 99, 
+     *  because "1" is a lower string value than "9".
+     *
+     *  @default false
+     *  
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Royale 0.9.3
+     */
+    public function get numeric():Boolean
+    {
+        return _numeric;
+    }
+    
+    /**
+     *  @private
+     */
+    public function set numeric(value:Boolean):void
+    {
+        if (_numeric != value)
+        {
+            _numeric = value;
+        }
+    }
+    
+    //---------------------------------
+    //  groupingFunction
+    //---------------------------------
+    
+    /**
+     *  A function that determines the label for this group.  
+     *  By default,
+     *  the group displays the text for the field in the data that matches the
+     *  filed specified by the <code>name</code> property.  
+     *  However, sometimes you want to group the items based on
+     *  more than one field in the data, or group based on something that is
+     *  not a simple String field.
+     *  In such a case, you specify a callback function by using 
+     *  the <code>groupingFunction</code> property.
+     *
+     *  <p>A callback function might convert a number for the month into 
+     *  the String for the month, or group multiple items into a single group
+     *  based on some criteria other than the actual value of the field.</p>
+     *
+     *  <p>For the GroupField, the method signature has the following form:</p>
+     *
+     *  <pre>groupingFunction(item:Object, field:GroupField):String</pre>
+     *
+     *  <p>Where <code>item</code> contains the data item object, and
+     *  <code>field</code> contains the GroupField object.</p>
+     * 
+     *  For example, a <code>groupingFunction</code> which returns the
+     *  first character as the group name can be written as - 
+     *  <pre>
+     *  private function groupFunc(item:Object, field:GroupingField):String
+     *  {
+     *      return item[field.name].toString().substr(0, 1);
+     *  }
+     *  </pre>
+     * 
+     *  
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Royale 0.9.3
+     */
+    public var groupingFunction:Function;
+    
+    //---------------------------------
+    //  groupingObjectFunction
+    //---------------------------------
+    
+    /**
+     *  A callback function to run on each group node to determine the 
+     *  grouping object.  
+     *  By default, a new Object will be created for group nodes.
+     *
+     *  <p>You can supply a <code>groupingObjectFunction</code> that provides the 
+     *  appropriate Object for group nodes.</p>
+     *
+     *  <p>The method signature is:</p>
+     *  <pre>
+     *  myGroupObjectFunction(label:String):Object</pre>
+     * 
+     *  <p>Where <code>label</code> contains the value that will be
+     *  shown for that group node. 
+     *  The function returns an Object that will be used for group nodes. </p>
+     * 
+     *  For example, a <code>groupingObjectFunction</code> which returns an Object
+     *  containing a "name" property with value as "Bob" can be written as - 
+     *  <pre>
+     *  private function groupObjFunction(label:String):Object
+     *  {
+     *      var obj:Object = {};
+     *      obj.name = "Bob";
+     *
+     *      return obj;
+     *  }
+     *  </pre>
+     *
+     *  
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Royale 0.9.3
+     */
+    public var groupingObjectFunction:Function;
+    
+    //---------------------------------
+    //  summaries
+    //---------------------------------
+    
+    /**
+     *  Array of SummaryRow instances that define the group-level summaries.
+     *  Specify one or more SummaryRow instances to define the data summaries, 
+     *  as the following example shows:
+     *
+     *  <pre>
+     *  &lt;mx:AdvancedDataGrid id="myADG" 
+     *     width="100%" height="100%" 
+     *     initialize="gc.refresh();"&gt;        
+     *     &lt;mx:dataProvider&gt;
+     *         &lt;mx:GroupingCollection id="gc" source="{dpFlat}"&gt;
+     *             &lt;mx:Grouping&gt;
+     *                 &lt;mx:GroupingField name="Region"&gt;
+     *                   &lt;mx:summaries&gt;
+     *                       &lt;mx:SummaryRow summaryPlacement="group"&gt;
+     *                         &lt;mx:fields&gt;
+     *                             &lt;mx:SummaryField dataField="Actual" 
+     *                                 label="Min Actual" operation="MIN"/&gt;
+     *                             &lt;mx:SummaryField dataField="Actual" 
+     *                                 label="Max Actual" operation="MAX"/&gt;
+     *                         &lt;/mx:fields&gt;
+     *                       &lt;/mx:SummaryRow&gt;
+     *                     &lt;/mx:summaries&gt;
+     *                 &lt;/mx:GroupingField&gt;
+     *             &lt;/mx:Grouping&gt;
+     *         &lt;/mx:GroupingCollection&gt;
+     *     &lt;/mx:dataProvider&gt;        
+     *     
+     *     &lt;mx:columns&gt;
+     *         &lt;mx:AdvancedDataGridColumn dataField="Region"/&gt;
+     *         &lt;mx:AdvancedDataGridColumn dataField="Territory_Rep"
+     *             headerText="Territory Rep"/&gt;
+     *         &lt;mx:AdvancedDataGridColumn dataField="Actual"/&gt;
+     *         &lt;mx:AdvancedDataGridColumn dataField="Estimate"/&gt;
+     *         &lt;mx:AdvancedDataGridColumn dataField="Min Actual"/&gt;
+     *         &lt;mx:AdvancedDataGridColumn dataField="Max Actual"/&gt;
+     *     &lt;/mx:columns&gt;
+     *  &lt;/mx:AdvancedDataGrid&gt;  
+     *  </pre>
+     *
+     *  @see mx.collections.SummaryRow
+     *  @see mx.collections.SummaryField
+     *  
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Royale 0.9.3
+     */
+    public var summaries:Array;
+}
+
+}
diff --git a/frameworks/projects/MXRoyale/src/main/royale/mx/collections/HierarchicalCollectionView.as b/frameworks/projects/MXRoyaleBase/src/main/royale/mx/collections/HierarchicalCollectionView.as
similarity index 100%
rename from frameworks/projects/MXRoyale/src/main/royale/mx/collections/HierarchicalCollectionView.as
rename to frameworks/projects/MXRoyaleBase/src/main/royale/mx/collections/HierarchicalCollectionView.as
diff --git a/frameworks/projects/MXRoyale/src/main/royale/mx/collections/HierarchicalCollectionViewCursor.as b/frameworks/projects/MXRoyaleBase/src/main/royale/mx/collections/HierarchicalCollectionViewCursor.as
similarity index 100%
rename from frameworks/projects/MXRoyale/src/main/royale/mx/collections/HierarchicalCollectionViewCursor.as
rename to frameworks/projects/MXRoyaleBase/src/main/royale/mx/collections/HierarchicalCollectionViewCursor.as
diff --git a/frameworks/projects/MXRoyale/src/main/royale/mx/collections/HierarchicalData.as b/frameworks/projects/MXRoyaleBase/src/main/royale/mx/collections/HierarchicalData.as
similarity index 100%
rename from frameworks/projects/MXRoyale/src/main/royale/mx/collections/HierarchicalData.as
rename to frameworks/projects/MXRoyaleBase/src/main/royale/mx/collections/HierarchicalData.as
diff --git a/frameworks/projects/MXRoyale/src/main/royale/mx/collections/ICollectionView.as b/frameworks/projects/MXRoyaleBase/src/main/royale/mx/collections/ICollectionView.as
similarity index 97%
rename from frameworks/projects/MXRoyale/src/main/royale/mx/collections/ICollectionView.as
rename to frameworks/projects/MXRoyaleBase/src/main/royale/mx/collections/ICollectionView.as
index 33e4b94..87646d8 100644
--- a/frameworks/projects/MXRoyale/src/main/royale/mx/collections/ICollectionView.as
+++ b/frameworks/projects/MXRoyaleBase/src/main/royale/mx/collections/ICollectionView.as
@@ -1,294 +1,294 @@
-////////////////////////////////////////////////////////////////////////////////
-//
-//  Licensed to the Apache Software Foundation (ASF) under one or more
-//  contributor license agreements.  See the NOTICE file distributed with
-//  this work for additional information regarding copyright ownership.
-//  The ASF licenses this file to You under the Apache License, Version 2.0
-//  (the "License"); you may not use this file except in compliance with
-//  the License.  You may obtain a copy of the License at
-//
-//      http://www.apache.org/licenses/LICENSE-2.0
-//
-//  Unless required by applicable law or agreed to in writing, software
-//  distributed under the License is distributed on an "AS IS" BASIS,
-//  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-//  See the License for the specific language governing permissions and
-//  limitations under the License.
-//
-////////////////////////////////////////////////////////////////////////////////
-
-package mx.collections
-{
-import mx.events.CollectionEvent;
-
-import org.apache.royale.events.IEventDispatcher;
-
-/**
- *  Dispatched when the ICollectionView has been updated in some way.
- *
- *  @eventType mx.events.CollectionEvent.COLLECTION_CHANGE
- *  
- *  @langversion 3.0
- *  @playerversion Flash 9
- *  @playerversion AIR 1.1
- *  @productversion Royale 0.9.3
- */
-[Event(name="collectionChange", type="mx.events.CollectionEvent")]
-
-/**
- *  An <code>ICollectionView</code> is a view onto a collection of data.
- *  The view can be modified to show the data sorted according to various
- *  criteria or reduced by filters without modifying the underlying data.
- *  An IViewCursor provides to access items within a
- *  collection. You can modify the collection by using the IViewCursor
- *  interface <code>insert()</code> and <code>remove()</code> methods.
- *
- *  <p>An <code>ICollectionView</code> may be a view onto data that has been
- *  retrieved from a remote location.
- *  When Implementing this interface for data
- *  that may be remote it is important to handle the case where data
- *  may not yet be available, which is indicated by the
- *  <code>ItemPendingError</code>.</p>
- *
- *  <p>The <code>IList</code> interface is an alternative to the
- *  <code>ICollectionView</code> interface.</p>
- *
- *  @see mx.collections.IViewCursor
- *  @see mx.collections.errors.ItemPendingError
- *  @see mx.collections.IList
- *  
- *  @langversion 3.0
- *  @playerversion Flash 9
- *  @playerversion AIR 1.1
- *  @productversion Royale 0.9.3
- */
-public interface ICollectionView extends IEventDispatcher
-{
-	//--------------------------------------------------------------------------
-	//
-	//  Properties
-	//
-	//--------------------------------------------------------------------------
-
-	//----------------------------------
-	//  length
-	//----------------------------------
-
-    /**
-     *  The number of items in this view.
-	 *  0 means no items, while -1 means that the length is unknown.
-     *  
-     *  @langversion 3.0
-     *  @playerversion Flash 9
-     *  @playerversion AIR 1.1
-     *  @productversion Royale 0.9.3
-     */
-    function get length():int;
-
-	//----------------------------------
-	//  filterFunction
-	//----------------------------------
-
-    /**
-     *  A function that the view will use to eliminate items that do not
-     *  match the function's criteria.
-	 *  A filterFunction is expected to have the following signature:
-	 *
-	 *  <pre>f(item:Object):Boolean</pre>
-	 *
-	 *  where the return value is <code>true</code> if the specified item
-	 *  should remain in the view.
-	 *
-     *  <p>If a filter is unsupported, Flex throws an error when accessing
-     *  this property.
-     *  You must call <code>refresh()</code> after setting the
-	 *  <code>filterFunction</code> property for the view to update.</p>
-	 *
- 	 *  <p>Note: The Flex implementations of ICollectionView retrieve all
-	 *  items from a remote location before executing the filter function.
-	 *  If you use paging, apply the filter to the remote collection before
-	 *  you retrieve the data.</p>
-	 *
-     *  @see #refresh()
-     *  
-     *  @langversion 3.0
-     *  @playerversion Flash 9
-     *  @playerversion AIR 1.1
-     *  @productversion Royale 0.9.3
-     */
-    function get filterFunction():Function;
-    
-	/**
-	 *  @private
-	 */
-	function set filterFunction(value:Function):void;
-
-	//----------------------------------
-	//  sort
-	//----------------------------------
-
-    /**
-     *  The ISort that will be applied to the ICollectionView.
-	 *  Setting the sort does not automatically refresh the view,
-	 *  so you must call the <code>refresh()</code> method
-	 *  after setting this property.
-     *  If sort is unsupported an error will be thrown when accessing
-     *  this property.
-	 *
-	 *  <p>Note: The Flex implementations of ICollectionView retrieve all
-	 *  items from a remote location before executing a sort.
-	 *  If you use paging with a sorted list, apply the sort to the remote
-	 *  collection before you retrieve the data.</p>
-	 *
-     *  @see #refresh()
-     *  
-     *  @langversion 3.0
-     *  @playerversion Flash 9
-     *  @playerversion AIR 1.1
-     *  @productversion Royale 0.9.3
-     */
-    function get sort():ISort;
-    
-	/**
-	 *  @private
-	 */
-    function set sort(value:ISort):void;
-
-	//--------------------------------------------------------------------------
-	//
-	//  Methods
-	//
-	//--------------------------------------------------------------------------
-
-    /**
-     *  Creates a new IViewCursor that works with this view.
-     *
-     *  @return A new IViewCursor implementation.
-     *
-     *  
-     *  @langversion 3.0
-     *  @playerversion Flash 9
-     *  @playerversion AIR 1.1
-     *  @productversion Royale 0.9.3
-     */
-    function createCursor():IViewCursor;
-
-    /**
-     *  Returns whether the view contains the specified object.
-	 *  Unlike the <code>IViewCursor.find<i>xxx</i></code> methods,
-	 *  this search is succesful only if it finds an item that exactly
-	 *  matches the parameter.
-     *  If the view has a filter applied to it this method may return
-	 *  <code>false</code> even if the underlying collection
-	 *  does contain the item.
-     *
-     *  @param item The object to look for.
-	 *
-     *  @return true if the ICollectionView, after applying any filter,
-     *  contains the item; false otherwise.
-     *  
-     *  @langversion 3.0
-     *  @playerversion Flash 9
-     *  @playerversion AIR 1.1
-     *  @productversion Royale 0.9.3
-     */
-    function contains(item:Object):Boolean;
-
-    /**
-     *  Prevents changes to the collection itself and items within the
-	 *  collection from being dispatched by the view.
-	 *  Also prevents the view from updating the positions of items
-	 *  if the positions change in the collection.
-	 *  The changes will be queued and dispatched appropriately
-	 *  after <code>enableAutoUpdate</code> is called.
-	 *  If more events than updates to a single item occur,
-	 *  the view may end up resetting. 
-	 *  The <code>disableAutoUpdate</code> method acts cumulatively;
-	 *  the same number of calls to <code>enableAutoUpdate</code>
-	 *  are required for the view to dispatch events and refresh.
-	 *  Note that <code>disableAutoUpdate</code> only affects the
-     *  individual view; edits may be detected on an individual
-	 *  basis by other views.
-     *  
-     *  @langversion 3.0
-     *  @playerversion Flash 9
-     *  @playerversion AIR 1.1
-     *  @productversion Royale 0.9.3
-     */
-    function disableAutoUpdate():void;
-
-    /**
-     *  Enables auto-updating.
-	 *  See <code>disableAutoUpdate</code> for more information.
-	 *
-     *  @see #disableAutoUpdate()
-     *  
-     *  @langversion 3.0
-     *  @playerversion Flash 9
-     *  @playerversion AIR 1.1
-     *  @productversion Royale 0.9.3
-     */
-    function enableAutoUpdate():void;
-
-    /**
-     *  Notifies the view that an item has been updated.
-	 *  This method is useful if the contents of the view do not implement
-	 *  <code>IPropertyChangeNotifier</code>.
-	 *  If the call to this method includes a <code>property</code> parameter,
-	 *  the view may be able to optimize its notification mechanism.
-     *  Otherwise it may choose to simply refresh the whole view.
-     *
-     *  @param item The item within the view that was updated.
-	 *
-     *  @param property The name of the property that was updated.
-	 *
-     *  @param oldValue The old value of that property. (If property
-	 *  was null, this can be the old value of the item.).
-	 *
-     *  @param newValue The new value of that property. (If property
-	 *  was null, there's no need to specify this as the item is assumed
-	 *  to be the new value.)
-     *
-     *  @see mx.events.CollectionEvent
-     *  @see mx.core.IPropertyChangeNotifier
-     *  @see mx.events.PropertyChangeEvent
-     *  
-     *  @langversion 3.0
-     *  @playerversion Flash 9
-     *  @playerversion AIR 1.1
-     *  @productversion Royale 0.9.3
-     */
-    function itemUpdated(item:Object, property:Object = null,
-                         oldValue:Object = null, newValue:Object = null):void;
-
-    /**
-     *  Applies the sort and filter to the view.
-	 *  The ICollectionView does not detect changes to a sort or
-	 *  filter automatically, so you must call the <code>refresh()</code>
-	 *  method to update the view after setting the <code>sort</code> 
-	 *  or <code>filterFunction</code> property.
-	 *  If your ICollectionView implementation also implements
-	 *  the IMXMLObject interface, you should to call the
-	 *  <code>refresh()</code> method from your <code>initialized()</code>
-	 *  method.
-	 *
-     *  <p>Returns <code>true</code> if the refresh was successful
-	 *  and <code>false</code> if the sort is not yet complete
-	 *  (e.g., items are still pending).
-	 *  A client of the view should wait for a CollectionEvent event
-	 *  with the <code>CollectionEventKind.REFRESH</code> <code>kind</code>
-	 *  property to ensure that the <code>refresh()</code> operation is
-	 *  complete.</p>
-     *
-     *  @return <code>true</code> if the refresh() was complete,
-	 *  <code>false</code> if the refresh() is incomplete.
-     *  
-     *  @langversion 3.0
-     *  @playerversion Flash 9
-     *  @playerversion AIR 1.1
-     *  @productversion Royale 0.9.3
-     */
-    function refresh():Boolean;
-}
-
-}
+////////////////////////////////////////////////////////////////////////////////
+//
+//  Licensed to the Apache Software Foundation (ASF) under one or more
+//  contributor license agreements.  See the NOTICE file distributed with
+//  this work for additional information regarding copyright ownership.
+//  The ASF licenses this file to You under the Apache License, Version 2.0
+//  (the "License"); you may not use this file except in compliance with
+//  the License.  You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+//  Unless required by applicable law or agreed to in writing, software
+//  distributed under the License is distributed on an "AS IS" BASIS,
+//  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//  See the License for the specific language governing permissions and
+//  limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+
+package mx.collections
+{
+import mx.events.CollectionEvent;
+
+import org.apache.royale.events.IEventDispatcher;
+
+/**
+ *  Dispatched when the ICollectionView has been updated in some way.
+ *
+ *  @eventType mx.events.CollectionEvent.COLLECTION_CHANGE
+ *  
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion Royale 0.9.3
+ */
+[Event(name="collectionChange", type="mx.events.CollectionEvent")]
+
+/**
+ *  An <code>ICollectionView</code> is a view onto a collection of data.
+ *  The view can be modified to show the data sorted according to various
+ *  criteria or reduced by filters without modifying the underlying data.
+ *  An IViewCursor provides to access items within a
+ *  collection. You can modify the collection by using the IViewCursor
+ *  interface <code>insert()</code> and <code>remove()</code> methods.
+ *
+ *  <p>An <code>ICollectionView</code> may be a view onto data that has been
+ *  retrieved from a remote location.
+ *  When Implementing this interface for data
+ *  that may be remote it is important to handle the case where data
+ *  may not yet be available, which is indicated by the
+ *  <code>ItemPendingError</code>.</p>
+ *
+ *  <p>The <code>IList</code> interface is an alternative to the
+ *  <code>ICollectionView</code> interface.</p>
+ *
+ *  @see mx.collections.IViewCursor
+ *  @see mx.collections.errors.ItemPendingError
+ *  @see mx.collections.IList
+ *  
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion Royale 0.9.3
+ */
+public interface ICollectionView extends IEventDispatcher
+{
+	//--------------------------------------------------------------------------
+	//
+	//  Properties
+	//
+	//--------------------------------------------------------------------------
+
+	//----------------------------------
+	//  length
+	//----------------------------------
+
+    /**
+     *  The number of items in this view.
+	 *  0 means no items, while -1 means that the length is unknown.
+     *  
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Royale 0.9.3
+     */
+    function get length():int;
+
+	//----------------------------------
+	//  filterFunction
+	//----------------------------------
+
+    /**
+     *  A function that the view will use to eliminate items that do not
+     *  match the function's criteria.
+	 *  A filterFunction is expected to have the following signature:
+	 *
+	 *  <pre>f(item:Object):Boolean</pre>
+	 *
+	 *  where the return value is <code>true</code> if the specified item
+	 *  should remain in the view.
+	 *
+     *  <p>If a filter is unsupported, Flex throws an error when accessing
+     *  this property.
+     *  You must call <code>refresh()</code> after setting the
+	 *  <code>filterFunction</code> property for the view to update.</p>
+	 *
+ 	 *  <p>Note: The Flex implementations of ICollectionView retrieve all
+	 *  items from a remote location before executing the filter function.
+	 *  If you use paging, apply the filter to the remote collection before
+	 *  you retrieve the data.</p>
+	 *
+     *  @see #refresh()
+     *  
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Royale 0.9.3
+     */
+    function get filterFunction():Function;
+    
+	/**
+	 *  @private
+	 */
+	function set filterFunction(value:Function):void;
+
+	//----------------------------------
+	//  sort
+	//----------------------------------
+
+    /**
+     *  The ISort that will be applied to the ICollectionView.
+	 *  Setting the sort does not automatically refresh the view,
+	 *  so you must call the <code>refresh()</code> method
+	 *  after setting this property.
+     *  If sort is unsupported an error will be thrown when accessing
+     *  this property.
+	 *
+	 *  <p>Note: The Flex implementations of ICollectionView retrieve all
+	 *  items from a remote location before executing a sort.
+	 *  If you use paging with a sorted list, apply the sort to the remote
+	 *  collection before you retrieve the data.</p>
+	 *
+     *  @see #refresh()
+     *  
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Royale 0.9.3
+     */
+    function get sort():ISort;
+    
+	/**
+	 *  @private
+	 */
+    function set sort(value:ISort):void;
+
+	//--------------------------------------------------------------------------
+	//
+	//  Methods
+	//
+	//--------------------------------------------------------------------------
+
+    /**
+     *  Creates a new IViewCursor that works with this view.
+     *
+     *  @return A new IViewCursor implementation.
+     *
+     *  
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Royale 0.9.3
+     */
+    function createCursor():IViewCursor;
+
+    /**
+     *  Returns whether the view contains the specified object.
+	 *  Unlike the <code>IViewCursor.find<i>xxx</i></code> methods,
+	 *  this search is succesful only if it finds an item that exactly
+	 *  matches the parameter.
+     *  If the view has a filter applied to it this method may return
+	 *  <code>false</code> even if the underlying collection
+	 *  does contain the item.
+     *
+     *  @param item The object to look for.
+	 *
+     *  @return true if the ICollectionView, after applying any filter,
+     *  contains the item; false otherwise.
+     *  
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Royale 0.9.3
+     */
+    function contains(item:Object):Boolean;
+
+    /**
+     *  Prevents changes to the collection itself and items within the
+	 *  collection from being dispatched by the view.
+	 *  Also prevents the view from updating the positions of items
+	 *  if the positions change in the collection.
+	 *  The changes will be queued and dispatched appropriately
+	 *  after <code>enableAutoUpdate</code> is called.
+	 *  If more events than updates to a single item occur,
+	 *  the view may end up resetting. 
+	 *  The <code>disableAutoUpdate</code> method acts cumulatively;
+	 *  the same number of calls to <code>enableAutoUpdate</code>
+	 *  are required for the view to dispatch events and refresh.
+	 *  Note that <code>disableAutoUpdate</code> only affects the
+     *  individual view; edits may be detected on an individual
+	 *  basis by other views.
+     *  
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Royale 0.9.3
+     */
+    function disableAutoUpdate():void;
+
+    /**
+     *  Enables auto-updating.
+	 *  See <code>disableAutoUpdate</code> for more information.
+	 *
+     *  @see #disableAutoUpdate()
+     *  
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Royale 0.9.3
+     */
+    function enableAutoUpdate():void;
+
+    /**
+     *  Notifies the view that an item has been updated.
+	 *  This method is useful if the contents of the view do not implement
+	 *  <code>IPropertyChangeNotifier</code>.
+	 *  If the call to this method includes a <code>property</code> parameter,
+	 *  the view may be able to optimize its notification mechanism.
+     *  Otherwise it may choose to simply refresh the whole view.
+     *
+     *  @param item The item within the view that was updated.
+	 *
+     *  @param property The name of the property that was updated.
+	 *
+     *  @param oldValue The old value of that property. (If property
+	 *  was null, this can be the old value of the item.).
+	 *
+     *  @param newValue The new value of that property. (If property
+	 *  was null, there's no need to specify this as the item is assumed
+	 *  to be the new value.)
+     *
+     *  @see mx.events.CollectionEvent
+     *  @see mx.core.IPropertyChangeNotifier
+     *  @see mx.events.PropertyChangeEvent
+     *  
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Royale 0.9.3
+     */
+    function itemUpdated(item:Object, property:Object = null,
+                         oldValue:Object = null, newValue:Object = null):void;
+
+    /**
+     *  Applies the sort and filter to the view.
+	 *  The ICollectionView does not detect changes to a sort or
+	 *  filter automatically, so you must call the <code>refresh()</code>
+	 *  method to update the view after setting the <code>sort</code> 
+	 *  or <code>filterFunction</code> property.
+	 *  If your ICollectionView implementation also implements
+	 *  the IMXMLObject interface, you should to call the
+	 *  <code>refresh()</code> method from your <code>initialized()</code>
+	 *  method.
+	 *
+     *  <p>Returns <code>true</code> if the refresh was successful
+	 *  and <code>false</code> if the sort is not yet complete
+	 *  (e.g., items are still pending).
+	 *  A client of the view should wait for a CollectionEvent event
+	 *  with the <code>CollectionEventKind.REFRESH</code> <code>kind</code>
+	 *  property to ensure that the <code>refresh()</code> operation is
+	 *  complete.</p>
+     *
+     *  @return <code>true</code> if the refresh() was complete,
+	 *  <code>false</code> if the refresh() is incomplete.
+     *  
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Royale 0.9.3
+     */
+    function refresh():Boolean;
+}
+
+}
diff --git a/frameworks/projects/MXRoyale/src/main/royale/mx/collections/IComplexSortField.as b/frameworks/projects/MXRoyaleBase/src/main/royale/mx/collections/IComplexSortField.as
similarity index 100%
rename from frameworks/projects/MXRoyale/src/main/royale/mx/collections/IComplexSortField.as
rename to frameworks/projects/MXRoyaleBase/src/main/royale/mx/collections/IComplexSortField.as
diff --git a/frameworks/projects/MXRoyale/src/main/royale/mx/collections/IGroupingCollection.as b/frameworks/projects/MXRoyaleBase/src/main/royale/mx/collections/IGroupingCollection.as
similarity index 100%
rename from frameworks/projects/MXRoyale/src/main/royale/mx/collections/IGroupingCollection.as
rename to frameworks/projects/MXRoyaleBase/src/main/royale/mx/collections/IGroupingCollection.as
diff --git a/frameworks/projects/MXRoyale/src/main/royale/mx/collections/IGroupingCollection2.as b/frameworks/projects/MXRoyaleBase/src/main/royale/mx/collections/IGroupingCollection2.as
similarity index 100%
rename from frameworks/projects/MXRoyale/src/main/royale/mx/collections/IGroupingCollection2.as
rename to frameworks/projects/MXRoyaleBase/src/main/royale/mx/collections/IGroupingCollection2.as
diff --git a/frameworks/projects/MXRoyale/src/main/royale/mx/collections/IHierarchicalCollectionView.as b/frameworks/projects/MXRoyaleBase/src/main/royale/mx/collections/IHierarchicalCollectionView.as
similarity index 100%
rename from frameworks/projects/MXRoyale/src/main/royale/mx/collections/IHierarchicalCollectionView.as
rename to frameworks/projects/MXRoyaleBase/src/main/royale/mx/collections/IHierarchicalCollectionView.as
diff --git a/frameworks/projects/MXRoyale/src/main/royale/mx/collections/IHierarchicalCollectionViewCursor.as b/frameworks/projects/MXRoyaleBase/src/main/royale/mx/collections/IHierarchicalCollectionViewCursor.as
similarity index 100%
rename from frameworks/projects/MXRoyale/src/main/royale/mx/collections/IHierarchicalCollectionViewCursor.as
rename to frameworks/projects/MXRoyaleBase/src/main/royale/mx/collections/IHierarchicalCollectionViewCursor.as
diff --git a/frameworks/projects/MXRoyale/src/main/royale/mx/collections/IHierarchicalData.as b/frameworks/projects/MXRoyaleBase/src/main/royale/mx/collections/IHierarchicalData.as
similarity index 100%
rename from frameworks/projects/MXRoyale/src/main/royale/mx/collections/IHierarchicalData.as
rename to frameworks/projects/MXRoyaleBase/src/main/royale/mx/collections/IHierarchicalData.as
diff --git a/frameworks/projects/MXRoyale/src/main/royale/mx/collections/IList.as b/frameworks/projects/MXRoyaleBase/src/main/royale/mx/collections/IList.as
similarity index 100%
rename from frameworks/projects/MXRoyale/src/main/royale/mx/collections/IList.as
rename to frameworks/projects/MXRoyaleBase/src/main/royale/mx/collections/IList.as
diff --git a/frameworks/projects/MXRoyale/src/main/royale/mx/collections/ISort.as b/frameworks/projects/MXRoyaleBase/src/main/royale/mx/collections/ISort.as
similarity index 100%
rename from frameworks/projects/MXRoyale/src/main/royale/mx/collections/ISort.as
rename to frameworks/projects/MXRoyaleBase/src/main/royale/mx/collections/ISort.as
diff --git a/frameworks/projects/MXRoyale/src/main/royale/mx/collections/ISortField.as b/frameworks/projects/MXRoyaleBase/src/main/royale/mx/collections/ISortField.as
similarity index 100%
rename from frameworks/projects/MXRoyale/src/main/royale/mx/collections/ISortField.as
rename to frameworks/projects/MXRoyaleBase/src/main/royale/mx/collections/ISortField.as
diff --git a/frameworks/projects/MXRoyale/src/main/royale/mx/collections/ISummaryCalculator.as b/frameworks/projects/MXRoyaleBase/src/main/royale/mx/collections/ISummaryCalculator.as
similarity index 100%
rename from frameworks/projects/MXRoyale/src/main/royale/mx/collections/ISummaryCalculator.as
rename to frameworks/projects/MXRoyaleBase/src/main/royale/mx/collections/ISummaryCalculator.as
diff --git a/frameworks/projects/MXRoyale/src/main/royale/mx/collections/IViewCursor.as b/frameworks/projects/MXRoyaleBase/src/main/royale/mx/collections/IViewCursor.as
similarity index 100%
rename from frameworks/projects/MXRoyale/src/main/royale/mx/collections/IViewCursor.as
rename to frameworks/projects/MXRoyaleBase/src/main/royale/mx/collections/IViewCursor.as
diff --git a/frameworks/projects/MXRoyale/src/main/royale/mx/collections/LeafNodeCursor.as b/frameworks/projects/MXRoyaleBase/src/main/royale/mx/collections/LeafNodeCursor.as
similarity index 100%
rename from frameworks/projects/MXRoyale/src/main/royale/mx/collections/LeafNodeCursor.as
rename to frameworks/projects/MXRoyaleBase/src/main/royale/mx/collections/LeafNodeCursor.as
diff --git a/frameworks/projects/MXRoyale/src/main/royale/mx/collections/ListCollectionView.as b/frameworks/projects/MXRoyaleBase/src/main/royale/mx/collections/ListCollectionView.as
similarity index 100%
rename from frameworks/projects/MXRoyale/src/main/royale/mx/collections/ListCollectionView.as
rename to frameworks/projects/MXRoyaleBase/src/main/royale/mx/collections/ListCollectionView.as
diff --git a/frameworks/projects/MXRoyale/src/main/royale/mx/collections/Sort.as b/frameworks/projects/MXRoyaleBase/src/main/royale/mx/collections/Sort.as
similarity index 100%
rename from frameworks/projects/MXRoyale/src/main/royale/mx/collections/Sort.as
rename to frameworks/projects/MXRoyaleBase/src/main/royale/mx/collections/Sort.as
diff --git a/frameworks/projects/MXRoyale/src/main/royale/mx/collections/SortField.as b/frameworks/projects/MXRoyaleBase/src/main/royale/mx/collections/SortField.as
similarity index 100%
rename from frameworks/projects/MXRoyale/src/main/royale/mx/collections/SortField.as
rename to frameworks/projects/MXRoyaleBase/src/main/royale/mx/collections/SortField.as
diff --git a/frameworks/projects/MXRoyale/src/main/royale/mx/collections/SortFieldCompareTypes.as b/frameworks/projects/MXRoyaleBase/src/main/royale/mx/collections/SortFieldCompareTypes.as
similarity index 100%
rename from frameworks/projects/MXRoyale/src/main/royale/mx/collections/SortFieldCompareTypes.as
rename to frameworks/projects/MXRoyaleBase/src/main/royale/mx/collections/SortFieldCompareTypes.as
diff --git a/frameworks/projects/MXRoyale/src/main/royale/mx/collections/SummaryField.as b/frameworks/projects/MXRoyaleBase/src/main/royale/mx/collections/SummaryField.as
similarity index 100%
rename from frameworks/projects/MXRoyale/src/main/royale/mx/collections/SummaryField.as
rename to frameworks/projects/MXRoyaleBase/src/main/royale/mx/collections/SummaryField.as
diff --git a/frameworks/projects/MXRoyale/src/main/royale/mx/collections/SummaryField2.as b/frameworks/projects/MXRoyaleBase/src/main/royale/mx/collections/SummaryField2.as
similarity index 100%
rename from frameworks/projects/MXRoyale/src/main/royale/mx/collections/SummaryField2.as
rename to frameworks/projects/MXRoyaleBase/src/main/royale/mx/collections/SummaryField2.as
diff --git a/frameworks/projects/MXRoyale/src/main/royale/mx/collections/SummaryObject.as b/frameworks/projects/MXRoyaleBase/src/main/royale/mx/collections/SummaryObject.as
similarity index 100%
rename from frameworks/projects/MXRoyale/src/main/royale/mx/collections/SummaryObject.as
rename to frameworks/projects/MXRoyaleBase/src/main/royale/mx/collections/SummaryObject.as
diff --git a/frameworks/projects/MXRoyale/src/main/royale/mx/collections/SummaryRow.as b/frameworks/projects/MXRoyaleBase/src/main/royale/mx/collections/SummaryRow.as
similarity index 100%
rename from frameworks/projects/MXRoyale/src/main/royale/mx/collections/SummaryRow.as
rename to frameworks/projects/MXRoyaleBase/src/main/royale/mx/collections/SummaryRow.as
diff --git a/frameworks/projects/MXRoyale/src/main/royale/mx/collections/XMLListAdapter.as b/frameworks/projects/MXRoyaleBase/src/main/royale/mx/collections/XMLListAdapter.as
similarity index 100%
rename from frameworks/projects/MXRoyale/src/main/royale/mx/collections/XMLListAdapter.as
rename to frameworks/projects/MXRoyaleBase/src/main/royale/mx/collections/XMLListAdapter.as
diff --git a/frameworks/projects/MXRoyale/src/main/royale/mx/collections/XMLListCollection.as b/frameworks/projects/MXRoyaleBase/src/main/royale/mx/collections/XMLListCollection.as
similarity index 100%
rename from frameworks/projects/MXRoyale/src/main/royale/mx/collections/XMLListCollection.as
rename to frameworks/projects/MXRoyaleBase/src/main/royale/mx/collections/XMLListCollection.as
diff --git a/frameworks/projects/MXRoyale/src/main/royale/mx/collections/errors/CursorError.as b/frameworks/projects/MXRoyaleBase/src/main/royale/mx/collections/errors/CursorError.as
similarity index 100%
rename from frameworks/projects/MXRoyale/src/main/royale/mx/collections/errors/CursorError.as
rename to frameworks/projects/MXRoyaleBase/src/main/royale/mx/collections/errors/CursorError.as
diff --git a/frameworks/projects/MXRoyale/src/main/royale/mx/collections/errors/ItemPendingError.as b/frameworks/projects/MXRoyaleBase/src/main/royale/mx/collections/errors/ItemPendingError.as
similarity index 100%
rename from frameworks/projects/MXRoyale/src/main/royale/mx/collections/errors/ItemPendingError.as
rename to frameworks/projects/MXRoyaleBase/src/main/royale/mx/collections/errors/ItemPendingError.as
diff --git a/frameworks/projects/MXRoyale/src/main/royale/mx/collections/errors/SortError.as b/frameworks/projects/MXRoyaleBase/src/main/royale/mx/collections/errors/SortError.as
similarity index 100%
rename from frameworks/projects/MXRoyale/src/main/royale/mx/collections/errors/SortError.as
rename to frameworks/projects/MXRoyaleBase/src/main/royale/mx/collections/errors/SortError.as
diff --git a/frameworks/projects/MXRoyale/src/main/royale/mx/core/ClassFactory.as b/frameworks/projects/MXRoyaleBase/src/main/royale/mx/core/ClassFactory.as
similarity index 97%
rename from frameworks/projects/MXRoyale/src/main/royale/mx/core/ClassFactory.as
rename to frameworks/projects/MXRoyaleBase/src/main/royale/mx/core/ClassFactory.as
index e258d72..53f0556 100644
--- a/frameworks/projects/MXRoyale/src/main/royale/mx/core/ClassFactory.as
+++ b/frameworks/projects/MXRoyaleBase/src/main/royale/mx/core/ClassFactory.as
@@ -1,45 +1,45 @@
-////////////////////////////////////////////////////////////////////////////////
-//
-//  Licensed to the Apache Software Foundation (ASF) under one or more
-//  contributor license agreements.  See the NOTICE file distributed with
-//  this work for additional information regarding copyright ownership.
-//  The ASF licenses this file to You under the Apache License, Version 2.0
-//  (the "License"); you may not use this file except in compliance with
-//  the License.  You may obtain a copy of the License at
-//
-//      http://www.apache.org/licenses/LICENSE-2.0
-//
-//  Unless required by applicable law or agreed to in writing, software
-//  distributed under the License is distributed on an "AS IS" BASIS,
-//  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-//  See the License for the specific language governing permissions and
-//  limitations under the License.
-//
-////////////////////////////////////////////////////////////////////////////////
-package mx.core
-{
-	import org.apache.royale.core.ClassFactory;
-	
-    /**
-     *  The ClassFactory class is the basic implementation
-     *  of an IFactory that will generate multiple
-     *  instances of item renderers or custom classes.
-     * 
-     *  @langversion 3.0
-     *  @playerversion Flash 10.2
-     *  @playerversion AIR 2.6
-     *  @productversion Royale 0.0
-     * 
-     *  @royalesuppresspublicvarwarning
-     */
-	public class ClassFactory extends org.apache.royale.core.ClassFactory implements IFactory
-	{
-	
-
-      public function ClassFactory(generator:Class=null)
-		{
-			super(generator);
-		}
-	}
-}
-
+////////////////////////////////////////////////////////////////////////////////
+//
+//  Licensed to the Apache Software Foundation (ASF) under one or more
+//  contributor license agreements.  See the NOTICE file distributed with
+//  this work for additional information regarding copyright ownership.
+//  The ASF licenses this file to You under the Apache License, Version 2.0
+//  (the "License"); you may not use this file except in compliance with
+//  the License.  You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+//  Unless required by applicable law or agreed to in writing, software
+//  distributed under the License is distributed on an "AS IS" BASIS,
+//  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//  See the License for the specific language governing permissions and
+//  limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+package mx.core
+{
+	import org.apache.royale.core.ClassFactory;
+	
+    /**
+     *  The ClassFactory class is the basic implementation
+     *  of an IFactory that will generate multiple
+     *  instances of item renderers or custom classes.
+     * 
+     *  @langversion 3.0
+     *  @playerversion Flash 10.2
+     *  @playerversion AIR 2.6
+     *  @productversion Royale 0.0
+     * 
+     *  @royalesuppresspublicvarwarning
+     */
+	public class ClassFactory extends org.apache.royale.core.ClassFactory implements IFactory
+	{
+	
+
+      public function ClassFactory(generator:Class=null)
+		{
+			super(generator);
+		}
+	}
+}
+
diff --git a/frameworks/projects/MXRoyale/src/main/royale/mx/core/EventPriority.as b/frameworks/projects/MXRoyaleBase/src/main/royale/mx/core/EventPriority.as
similarity index 97%
rename from frameworks/projects/MXRoyale/src/main/royale/mx/core/EventPriority.as
rename to frameworks/projects/MXRoyaleBase/src/main/royale/mx/core/EventPriority.as
index 775b38b..f664822 100644
--- a/frameworks/projects/MXRoyale/src/main/royale/mx/core/EventPriority.as
+++ b/frameworks/projects/MXRoyaleBase/src/main/royale/mx/core/EventPriority.as
@@ -1,119 +1,119 @@
-////////////////////////////////////////////////////////////////////////////////
-//
-//  Licensed to the Apache Software Foundation (ASF) under one or more
-//  contributor license agreements.  See the NOTICE file distributed with
-//  this work for additional information regarding copyright ownership.
-//  The ASF licenses this file to You under the Apache License, Version 2.0
-//  (the "License"); you may not use this file except in compliance with
-//  the License.  You may obtain a copy of the License at
-//
-//      http://www.apache.org/licenses/LICENSE-2.0
-//
-//  Unless required by applicable law or agreed to in writing, software
-//  distributed under the License is distributed on an "AS IS" BASIS,
-//  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-//  See the License for the specific language governing permissions and
-//  limitations under the License.
-//
-////////////////////////////////////////////////////////////////////////////////
-
-package mx.core
-{
-
-/**
- *  The EventPriority class defines constant values
- *  for the <code>priority</code> argument of the
- *  <code>addEventListener()</code> method of EventDispatcher.
- *
- *  <p>The higher the number, the higher the priority of the event listener.
- *  All listeners with priority <code>N</code> will be processed
- *  before listeners of priority <code>N - 1</code>.
- *  If two or more listeners share the same priority,
- *  they are processed in the order in which they were added.</p>
- *
- *  <p>Priorities can be positive, 0, or negative.
- *  The default priority is 0.</p>
- *
- *  <p>You should not write code that depends on the numeric values
- *  of these constants.
- *  They are subject to change in future versions of Flex.</p>
- *  
- *  @langversion 3.0
- *  @playerversion Flash 9
- *  @playerversion AIR 1.1
- *  @productversion Royale 0.9.3
- */
-public final class EventPriority
-{
-/* 	include "../core/Version.as";
- */
-	//--------------------------------------------------------------------------
-	//
-	//  Class constants
-	//
-	//--------------------------------------------------------------------------
-
-	/**
-	 *  The CursorManager has handlers for mouse events
-	 *  which must be executed before other mouse event handlers,
-	 *  so they have a high priority.
-	 *  
-	 *  @langversion 3.0
-	 *  @playerversion Flash 9
-	 *  @playerversion AIR 1.1
-	 *  @productversion Royale 0.9.3
-	 */
-	public static const CURSOR_MANAGEMENT:int = 200;
-	
-	/**
-	 *  Autogenerated event handlers that evaluate data-binding expressions
-	 *  need to be executed before any others, so they have a higher priority
-	 *  than the default.
-	 *  
-	 *  @langversion 3.0
-	 *  @playerversion Flash 9
-	 *  @playerversion AIR 1.1
-	 *  @productversion Royale 0.9.3
-	 */
-	public static const BINDING:int = 100;
-
-	/**
-	 *  Event handlers on component instances are executed with the default
-	 *  priority, <code>0</code>.
-	 *  
-	 *  @langversion 3.0
-	 *  @playerversion Flash 9
-	 *  @playerversion AIR 1.1
-	 *  @productversion Royale 0.9.3
-	 */
-	public static const DEFAULT:int = 0;
-
-	/**
-	 *  Some components listen to events that they dispatch on themselves
-	 *  and let other listeners call the <code>preventDefault()</code>
-	 *  method to tell the component not to perform a default action.
-	 *  Those components must listen with a lower priority than the default
-	 *  priority, so that the other handlers are executed first and have
-	 *  a chance to call <code>preventDefault()</code>.
-	 *  
-	 *  @langversion 3.0
-	 *  @playerversion Flash 9
-	 *  @playerversion AIR 1.1
-	 *  @productversion Royale 0.9.3
-	 */
-	public static const DEFAULT_HANDLER:int = -50;
-
-	/**
-	 *  Autogenerated event handlers that trigger effects are executed
-	 *  after other event handlers on component instances, so they have
-	 *  a lower priority than the default.
-	 *  
-	 *  @langversion 3.0
-	 *  @playerversion Flash 9
-	 *  @playerversion AIR 1.1
-	 *  @productversion Royale 0.9.3
-	 */
-	public static const EFFECT:int = -100;
-}
-
-}
+////////////////////////////////////////////////////////////////////////////////
+//
+//  Licensed to the Apache Software Foundation (ASF) under one or more
+//  contributor license agreements.  See the NOTICE file distributed with
+//  this work for additional information regarding copyright ownership.
+//  The ASF licenses this file to You under the Apache License, Version 2.0
+//  (the "License"); you may not use this file except in compliance with
+//  the License.  You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+//  Unless required by applicable law or agreed to in writing, software
+//  distributed under the License is distributed on an "AS IS" BASIS,
+//  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//  See the License for the specific language governing permissions and
+//  limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+
+package mx.core
+{
+
+/**
+ *  The EventPriority class defines constant values
+ *  for the <code>priority</code> argument of the
+ *  <code>addEventListener()</code> method of EventDispatcher.
+ *
+ *  <p>The higher the number, the higher the priority of the event listener.
+ *  All listeners with priority <code>N</code> will be processed
+ *  before listeners of priority <code>N - 1</code>.
+ *  If two or more listeners share the same priority,
+ *  they are processed in the order in which they were added.</p>
+ *
+ *  <p>Priorities can be positive, 0, or negative.
+ *  The default priority is 0.</p>
+ *
+ *  <p>You should not write code that depends on the numeric values
+ *  of these constants.
+ *  They are subject to change in future versions of Flex.</p>
+ *  
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion Royale 0.9.3
+ */
+public final class EventPriority
+{
+/* 	include "../core/Version.as";
+ */
+	//--------------------------------------------------------------------------
+	//
+	//  Class constants
+	//
+	//--------------------------------------------------------------------------
+
+	/**
+	 *  The CursorManager has handlers for mouse events
+	 *  which must be executed before other mouse event handlers,
+	 *  so they have a high priority.
+	 *  
+	 *  @langversion 3.0
+	 *  @playerversion Flash 9
+	 *  @playerversion AIR 1.1
+	 *  @productversion Royale 0.9.3
+	 */
+	public static const CURSOR_MANAGEMENT:int = 200;
+	
+	/**
+	 *  Autogenerated event handlers that evaluate data-binding expressions
+	 *  need to be executed before any others, so they have a higher priority
+	 *  than the default.
+	 *  
+	 *  @langversion 3.0
+	 *  @playerversion Flash 9
+	 *  @playerversion AIR 1.1
+	 *  @productversion Royale 0.9.3
+	 */
+	public static const BINDING:int = 100;
+
+	/**
+	 *  Event handlers on component instances are executed with the default
+	 *  priority, <code>0</code>.
+	 *  
+	 *  @langversion 3.0
+	 *  @playerversion Flash 9
+	 *  @playerversion AIR 1.1
+	 *  @productversion Royale 0.9.3
+	 */
+	public static const DEFAULT:int = 0;
+
+	/**
+	 *  Some components listen to events that they dispatch on themselves
+	 *  and let other listeners call the <code>preventDefault()</code>
+	 *  method to tell the component not to perform a default action.
+	 *  Those components must listen with a lower priority than the default
+	 *  priority, so that the other handlers are executed first and have
+	 *  a chance to call <code>preventDefault()</code>.
+	 *  
+	 *  @langversion 3.0
+	 *  @playerversion Flash 9
+	 *  @playerversion AIR 1.1
+	 *  @productversion Royale 0.9.3
+	 */
+	public static const DEFAULT_HANDLER:int = -50;
+
+	/**
+	 *  Autogenerated event handlers that trigger effects are executed
+	 *  after other event handlers on component instances, so they have
+	 *  a lower priority than the default.
+	 *  
+	 *  @langversion 3.0
+	 *  @playerversion Flash 9
+	 *  @playerversion AIR 1.1
+	 *  @productversion Royale 0.9.3
+	 */
+	public static const EFFECT:int = -100;
+}
+
+}
diff --git a/frameworks/projects/MXRoyale/src/main/royale/mx/core/FlexGlobals.as b/frameworks/projects/MXRoyaleBase/src/main/royale/mx/core/FlexGlobals.as
similarity index 100%
rename from frameworks/projects/MXRoyale/src/main/royale/mx/core/FlexGlobals.as
rename to frameworks/projects/MXRoyaleBase/src/main/royale/mx/core/FlexGlobals.as
diff --git a/frameworks/projects/MXRoyale/src/main/royale/mx/core/FlexVersion.as b/frameworks/projects/MXRoyaleBase/src/main/royale/mx/core/FlexVersion.as
similarity index 100%
rename from frameworks/projects/MXRoyale/src/main/royale/mx/core/FlexVersion.as
rename to frameworks/projects/MXRoyaleBase/src/main/royale/mx/core/FlexVersion.as
diff --git a/frameworks/projects/MXRoyale/src/main/royale/mx/core/IChildList.as b/frameworks/projects/MXRoyaleBase/src/main/royale/mx/core/IChildList.as
similarity index 100%
rename from frameworks/projects/MXRoyale/src/main/royale/mx/core/IChildList.as
rename to frameworks/projects/MXRoyaleBase/src/main/royale/mx/core/IChildList.as
diff --git a/frameworks/projects/MXRoyale/src/main/royale/mx/core/IDisplayObjectInterface.as b/frameworks/projects/MXRoyaleBase/src/main/royale/mx/core/IDisplayObjectInterface.as
similarity index 100%
rename from frameworks/projects/MXRoyale/src/main/royale/mx/core/IDisplayObjectInterface.as
rename to frameworks/projects/MXRoyaleBase/src/main/royale/mx/core/IDisplayObjectInterface.as
diff --git a/frameworks/projects/MXRoyale/src/main/royale/mx/core/IFactory.as b/frameworks/projects/MXRoyaleBase/src/main/royale/mx/core/IFactory.as
similarity index 97%
rename from frameworks/projects/MXRoyale/src/main/royale/mx/core/IFactory.as
rename to frameworks/projects/MXRoyaleBase/src/main/royale/mx/core/IFactory.as
index 2525caa..8edce1b 100644
--- a/frameworks/projects/MXRoyale/src/main/royale/mx/core/IFactory.as
+++ b/frameworks/projects/MXRoyaleBase/src/main/royale/mx/core/IFactory.as
@@ -1,48 +1,48 @@
-////////////////////////////////////////////////////////////////////////////////
-//
-//  Licensed to the Apache Software Foundation (ASF) under one or more
-//  contributor license agreements.  See the NOTICE file distributed with
-//  this work for additional information regarding copyright ownership.
-//  The ASF licenses this file to You under the Apache License, Version 2.0
-//  (the "License"); you may not use this file except in compliance with
-//  the License.  You may obtain a copy of the License at
-//
-//      http://www.apache.org/licenses/LICENSE-2.0
-//
-//  Unless required by applicable law or agreed to in writing, software
-//  distributed under the License is distributed on an "AS IS" BASIS,
-//  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-//  See the License for the specific language governing permissions and
-//  limitations under the License.
-//
-////////////////////////////////////////////////////////////////////////////////
-
-package mx.core
-{
-
-import org.apache.royale.core.IFactory;
-
-/**
- *  The IFactory interface defines the interface that factory classes
- *  such as ClassFactory must implement.
- *  An object of type IFactory is a "factory object" which Flex uses
- *  to generate multiple instances of another class, each with identical
- *  properties.
- *
- *  <p>For example, a DataGridColumn has an <code>itemRenderer</code> of type
- *  IFactory; it calls <code>itemRenderer.newInstance()</code> to create
- *  the cells for a particular column of the DataGrid.</p>
- *
- *  @see mx.core.ClassFactory
- *  
- *  @langversion 3.0
- *  @playerversion Flash 9
- *  @playerversion AIR 1.1
- *  @productversion Royale 0.9.3
- */
-public interface IFactory extends org.apache.royale.core.IFactory
-{
-
-}
-
-}
+////////////////////////////////////////////////////////////////////////////////
+//
+//  Licensed to the Apache Software Foundation (ASF) under one or more
+//  contributor license agreements.  See the NOTICE file distributed with
+//  this work for additional information regarding copyright ownership.
+//  The ASF licenses this file to You under the Apache License, Version 2.0
+//  (the "License"); you may not use this file except in compliance with
+//  the License.  You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+//  Unless required by applicable law or agreed to in writing, software
+//  distributed under the License is distributed on an "AS IS" BASIS,
+//  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//  See the License for the specific language governing permissions and
+//  limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+
+package mx.core
+{
+
+import org.apache.royale.core.IFactory;
+
+/**
+ *  The IFactory interface defines the interface that factory classes
+ *  such as ClassFactory must implement.
+ *  An object of type IFactory is a "factory object" which Flex uses
+ *  to generate multiple instances of another class, each with identical
+ *  properties.
+ *
+ *  <p>For example, a DataGridColumn has an <code>itemRenderer</code> of type
+ *  IFactory; it calls <code>itemRenderer.newInstance()</code> to create
+ *  the cells for a particular column of the DataGrid.</p>
+ *
+ *  @see mx.core.ClassFactory
+ *  
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion Royale 0.9.3
+ */
+public interface IFactory extends org.apache.royale.core.IFactory
+{
+
+}
+
+}
diff --git a/frameworks/projects/MXRoyale/src/main/royale/mx/core/IFlexDisplayObject.as b/frameworks/projects/MXRoyaleBase/src/main/royale/mx/core/IFlexDisplayObject.as
similarity index 100%
rename from frameworks/projects/MXRoyale/src/main/royale/mx/core/IFlexDisplayObject.as
rename to frameworks/projects/MXRoyaleBase/src/main/royale/mx/core/IFlexDisplayObject.as
diff --git a/frameworks/projects/MXRoyale/src/main/royale/mx/core/IFlexModule.as b/frameworks/projects/MXRoyaleBase/src/main/royale/mx/core/IFlexModule.as
similarity index 100%
rename from frameworks/projects/MXRoyale/src/main/royale/mx/core/IFlexModule.as
rename to frameworks/projects/MXRoyaleBase/src/main/royale/mx/core/IFlexModule.as
diff --git a/frameworks/projects/MXRoyale/src/main/royale/mx/core/IFlexModuleFactory.as b/frameworks/projects/MXRoyaleBase/src/main/royale/mx/core/IFlexModuleFactory.as
similarity index 100%
rename from frameworks/projects/MXRoyale/src/main/royale/mx/core/IFlexModuleFactory.as
rename to frameworks/projects/MXRoyaleBase/src/main/royale/mx/core/IFlexModuleFactory.as
diff --git a/frameworks/projects/MXRoyale/src/main/royale/mx/core/IMXMLObject.as b/frameworks/projects/MXRoyaleBase/src/main/royale/mx/core/IMXMLObject.as
similarity index 100%
rename from frameworks/projects/MXRoyale/src/main/royale/mx/core/IMXMLObject.as
rename to frameworks/projects/MXRoyaleBase/src/main/royale/mx/core/IMXMLObject.as
diff --git a/frameworks/projects/MXRoyale/src/main/royale/mx/core/IPropertyChangeNotifier.as b/frameworks/projects/MXRoyaleBase/src/main/royale/mx/core/IPropertyChangeNotifier.as
similarity index 100%
rename from frameworks/projects/MXRoyale/src/main/royale/mx/core/IPropertyChangeNotifier.as
rename to frameworks/projects/MXRoyaleBase/src/main/royale/mx/core/IPropertyChangeNotifier.as
diff --git a/frameworks/projects/MXRoyale/src/main/royale/mx/core/IUIComponent.as b/frameworks/projects/MXRoyaleBase/src/main/royale/mx/core/IUIComponent.as
similarity index 100%
rename from frameworks/projects/MXRoyale/src/main/royale/mx/core/IUIComponent.as
rename to frameworks/projects/MXRoyaleBase/src/main/royale/mx/core/IUIComponent.as
diff --git a/frameworks/projects/MXRoyale/src/main/royale/mx/core/IUID.as b/frameworks/projects/MXRoyaleBase/src/main/royale/mx/core/IUID.as
similarity index 100%
rename from frameworks/projects/MXRoyale/src/main/royale/mx/core/IUID.as
rename to frameworks/projects/MXRoyaleBase/src/main/royale/mx/core/IUID.as
diff --git a/frameworks/projects/MXRoyale/src/main/royale/mx/core/Keyboard.as b/frameworks/projects/MXRoyaleBase/src/main/royale/mx/core/Keyboard.as
similarity index 100%
rename from frameworks/projects/MXRoyale/src/main/royale/mx/core/Keyboard.as
rename to frameworks/projects/MXRoyaleBase/src/main/royale/mx/core/Keyboard.as
diff --git a/frameworks/projects/MXRoyale/src/main/royale/mx/core/Singleton.as b/frameworks/projects/MXRoyaleBase/src/main/royale/mx/core/Singleton.as
similarity index 100%
rename from frameworks/projects/MXRoyale/src/main/royale/mx/core/Singleton.as
rename to frameworks/projects/MXRoyaleBase/src/main/royale/mx/core/Singleton.as
diff --git a/frameworks/projects/MXRoyale/src/main/royale/mx/core/mx_internal.as b/frameworks/projects/MXRoyaleBase/src/main/royale/mx/core/mx_internal.as
similarity index 100%
rename from frameworks/projects/MXRoyale/src/main/royale/mx/core/mx_internal.as
rename to frameworks/projects/MXRoyaleBase/src/main/royale/mx/core/mx_internal.as
diff --git a/frameworks/projects/MXRoyale/src/main/royale/mx/data/EncryptedLocalStore.as b/frameworks/projects/MXRoyaleBase/src/main/royale/mx/data/EncryptedLocalStore.as
similarity index 100%
rename from frameworks/projects/MXRoyale/src/main/royale/mx/data/EncryptedLocalStore.as
rename to frameworks/projects/MXRoyaleBase/src/main/royale/mx/data/EncryptedLocalStore.as
diff --git a/frameworks/projects/MXRoyale/src/main/royale/mx/errors/EOFError.as b/frameworks/projects/MXRoyaleBase/src/main/royale/mx/errors/EOFError.as
similarity index 100%
rename from frameworks/projects/MXRoyale/src/main/royale/mx/errors/EOFError.as
rename to frameworks/projects/MXRoyaleBase/src/main/royale/mx/errors/EOFError.as
diff --git a/frameworks/projects/MXRoyale/src/main/royale/mx/errors/IllegalOperationError.as b/frameworks/projects/MXRoyaleBase/src/main/royale/mx/errors/IllegalOperationError.as
similarity index 100%
rename from frameworks/projects/MXRoyale/src/main/royale/mx/errors/IllegalOperationError.as
rename to frameworks/projects/MXRoyaleBase/src/main/royale/mx/errors/IllegalOperationError.as
diff --git a/frameworks/projects/MXRoyale/src/main/royale/mx/errors/ScriptTimeoutError.as b/frameworks/projects/MXRoyaleBase/src/main/royale/mx/errors/ScriptTimeoutError.as
similarity index 100%
rename from frameworks/projects/MXRoyale/src/main/royale/mx/errors/ScriptTimeoutError.as
rename to frameworks/projects/MXRoyaleBase/src/main/royale/mx/errors/ScriptTimeoutError.as
diff --git a/frameworks/projects/MXRoyale/src/main/royale/mx/events/AsyncErrorEvent.as b/frameworks/projects/MXRoyaleBase/src/main/royale/mx/events/AsyncErrorEvent.as
similarity index 96%
rename from frameworks/projects/MXRoyale/src/main/royale/mx/events/AsyncErrorEvent.as
rename to frameworks/projects/MXRoyaleBase/src/main/royale/mx/events/AsyncErrorEvent.as
index 8052ed2..f44c29a 100644
--- a/frameworks/projects/MXRoyale/src/main/royale/mx/events/AsyncErrorEvent.as
+++ b/frameworks/projects/MXRoyaleBase/src/main/royale/mx/events/AsyncErrorEvent.as
@@ -1,109 +1,109 @@
-////////////////////////////////////////////////////////////////////////////////
-//
-//  Licensed to the Apache Software Foundation (ASF) under one or more
-//  contributor license agreements.  See the NOTICE file distributed with
-//  this work for additional information regarding copyright ownership.
-//  The ASF licenses this file to You under the Apache License, Version 2.0
-//  (the "License"); you may not use this file except in compliance with
-//  the License.  You may obtain a copy of the License at
-//
-//      http://www.apache.org/licenses/LICENSE-2.0
-//
-//  Unless required by applicable law or agreed to in writing, software
-//  distributed under the License is distributed on an "AS IS" BASIS,
-//  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-//  See the License for the specific language governing permissions and
-//  limitations under the License.
-//
-////////////////////////////////////////////////////////////////////////////////
-
-package mx.events
-{
-COMPILE::SWF
-{
-import flash.events.AsyncErrorEvent;        
-}
-/* import mx.events.Event;*/
-import org.apache.royale.events.Event;
-import org.apache.royale.events.IRoyaleEvent;
-
-/**
- *
- *  
- *  @langversion 3.0
- *  @playerversion Flash 9
- *  @playerversion AIR 1.1
- *  @productversion Royale 0.9.3
- *  @royalesuppresspublicvarwarning
- */
-COMPILE::SWF
-public class AsyncErrorEvent extends flash.events.AsyncErrorEvent
-{
-	public function AsyncErrorEvent(type:String, bubbles:Boolean = false,
-							  cancelable:Boolean = false, text:String = "", id:int = 0
-							  )
-	{
-		super(type, bubbles, cancelable,text,id);
-	}
-}
-
-/**
- *  Represents event objects that are dispatched when focus changes.
- *
- *  @see mx.core.UIComponent
- *  
- *  @langversion 3.0
- *  @playerversion Flash 9
- *  @playerversion AIR 1.1
- *  @productversion Royale 0.9.3
- *  @royalesuppresspublicvarwarning
- */
-COMPILE::JS
-public class AsyncErrorEvent extends ErrorEvent
-{
-   /*  include "../core/Version.as"; */
-	public static const ASYNC_ERROR:String = "asyncError";
-	
-	//--------------------------------------------------------------------------
-	//
-	//  Class constants
-	//
-	//--------------------------------------------------------------------------
-
-	
-	//--------------------------------------------------------------------------
-	//
-	//  Constructor
-	//
-	//--------------------------------------------------------------------------
-
-	/**
-	 *  Constructor.
-	 *
-	 *  @param type The event type; indicates the action that caused the event.
-	 *
-	 *  @param bubbles Specifies whether the event can bubble
-	 *  up the display list hierarchy.
-	 *
-	 *  @param cancelable Specifies whether the behavior
-	 *  associated with the event can be prevented.
-	 *  
-	 *  @langversion 3.0
-	 *  @playerversion Flash 9
-	 *  @playerversion AIR 1.1
-	 *  @productversion Royale 0.9.3
-	 */
-	public function AsyncErrorEvent(type:String, bubbles:Boolean = false,
-							  cancelable:Boolean = false, text:String = "", id:int = 0
-							  )
-	{
-		super(type, bubbles, cancelable);
-	}
-	
-
-	
-
-	
-}
-
-}
+////////////////////////////////////////////////////////////////////////////////
+//
+//  Licensed to the Apache Software Foundation (ASF) under one or more
+//  contributor license agreements.  See the NOTICE file distributed with
+//  this work for additional information regarding copyright ownership.
+//  The ASF licenses this file to You under the Apache License, Version 2.0
+//  (the "License"); you may not use this file except in compliance with
+//  the License.  You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+//  Unless required by applicable law or agreed to in writing, software
+//  distributed under the License is distributed on an "AS IS" BASIS,
+//  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//  See the License for the specific language governing permissions and
+//  limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+
+package mx.events
+{
+COMPILE::SWF
+{
+import flash.events.AsyncErrorEvent;        
+}
+/* import mx.events.Event;*/
+import org.apache.royale.events.Event;
+import org.apache.royale.events.IRoyaleEvent;
+
+/**
+ *
+ *  
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion Royale 0.9.3
+ *  @royalesuppresspublicvarwarning
+ */
+COMPILE::SWF
+public class AsyncErrorEvent extends flash.events.AsyncErrorEvent
+{
+	public function AsyncErrorEvent(type:String, bubbles:Boolean = false,
+							  cancelable:Boolean = false, text:String = "", id:int = 0
+							  )
+	{
+		super(type, bubbles, cancelable,text,id);
+	}
+}
+
+/**
+ *  Represents event objects that are dispatched when focus changes.
+ *
+ *  @see mx.core.UIComponent
+ *  
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion Royale 0.9.3
+ *  @royalesuppresspublicvarwarning
+ */
+COMPILE::JS
+public class AsyncErrorEvent extends ErrorEvent
+{
+   /*  include "../core/Version.as"; */
+	public static const ASYNC_ERROR:String = "asyncError";
+	
+	//--------------------------------------------------------------------------
+	//
+	//  Class constants
+	//
+	//--------------------------------------------------------------------------
+
+	
+	//--------------------------------------------------------------------------
+	//
+	//  Constructor
+	//
+	//--------------------------------------------------------------------------
+
+	/**
+	 *  Constructor.
+	 *
+	 *  @param type The event type; indicates the action that caused the event.
+	 *
+	 *  @param bubbles Specifies whether the event can bubble
+	 *  up the display list hierarchy.
+	 *
+	 *  @param cancelable Specifies whether the behavior
+	 *  associated with the event can be prevented.
+	 *  
+	 *  @langversion 3.0
+	 *  @playerversion Flash 9
+	 *  @playerversion AIR 1.1
+	 *  @productversion Royale 0.9.3
+	 */
+	public function AsyncErrorEvent(type:String, bubbles:Boolean = false,
+							  cancelable:Boolean = false, text:String = "", id:int = 0
+							  )
+	{
+		super(type, bubbles, cancelable);
+	}
+	
+
+	
+
+	
+}
+
+}
diff --git a/frameworks/projects/MXRoyale/src/main/royale/mx/events/CollectionEvent.as b/frameworks/projects/MXRoyaleBase/src/main/royale/mx/events/CollectionEvent.as
similarity index 100%
rename from frameworks/projects/MXRoyale/src/main/royale/mx/events/CollectionEvent.as
rename to frameworks/projects/MXRoyaleBase/src/main/royale/mx/events/CollectionEvent.as
diff --git a/frameworks/projects/MXRoyale/src/main/royale/mx/events/CollectionEventKind.as b/frameworks/projects/MXRoyaleBase/src/main/royale/mx/events/CollectionEventKind.as
similarity index 100%
rename from frameworks/projects/MXRoyale/src/main/royale/mx/events/CollectionEventKind.as
rename to frameworks/projects/MXRoyaleBase/src/main/royale/mx/events/CollectionEventKind.as
diff --git a/frameworks/projects/MXRoyale/src/main/royale/mx/events/DataEvent.as b/frameworks/projects/MXRoyaleBase/src/main/royale/mx/events/DataEvent.as
similarity index 100%
rename from frameworks/projects/MXRoyale/src/main/royale/mx/events/DataEvent.as
rename to frameworks/projects/MXRoyaleBase/src/main/royale/mx/events/DataEvent.as
diff --git a/frameworks/projects/MXRoyale/src/main/royale/mx/events/ErrorEvent.as b/frameworks/projects/MXRoyaleBase/src/main/royale/mx/events/ErrorEvent.as
similarity index 96%
rename from frameworks/projects/MXRoyale/src/main/royale/mx/events/ErrorEvent.as
rename to frameworks/projects/MXRoyaleBase/src/main/royale/mx/events/ErrorEvent.as
index d0793b9..5e759c4 100644
--- a/frameworks/projects/MXRoyale/src/main/royale/mx/events/ErrorEvent.as
+++ b/frameworks/projects/MXRoyaleBase/src/main/royale/mx/events/ErrorEvent.as
@@ -1,111 +1,111 @@
-////////////////////////////////////////////////////////////////////////////////
-//
-//  Licensed to the Apache Software Foundation (ASF) under one or more
-//  contributor license agreements.  See the NOTICE file distributed with
-//  this work for additional information regarding copyright ownership.
-//  The ASF licenses this file to You under the Apache License, Version 2.0
-//  (the "License"); you may not use this file except in compliance with
-//  the License.  You may obtain a copy of the License at
-//
-//      http://www.apache.org/licenses/LICENSE-2.0
-//
-//  Unless required by applicable law or agreed to in writing, software
-//  distributed under the License is distributed on an "AS IS" BASIS,
-//  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-//  See the License for the specific language governing permissions and
-//  limitations under the License.
-//
-////////////////////////////////////////////////////////////////////////////////
-
-package mx.events
-{
-COMPILE::SWF
-{
-import flash.events.ErrorEvent;        
-}
-/* import mx.events.Event;*/
-import org.apache.royale.events.Event;
-import org.apache.royale.events.IRoyaleEvent;
-
-/**
- *
- *  
- *  @langversion 3.0
- *  @playerversion Flash 9
- *  @playerversion AIR 1.1
- *  @productversion Royale 0.9.3
- *  @royalesuppresspublicvarwarning
- */
-COMPILE::SWF
-public class ErrorEvent extends flash.events.ErrorEvent
-{
-    public static const ERROR:String = "error";
-    
-	public function ErrorEvent(type:String, bubbles:Boolean = false,
-							  cancelable:Boolean = false, text:String = "", id:int = 0
-							  )
-	{
-		super(type, bubbles, cancelable,text,id);
-	}
-}
-
-/**
- *  Represents event objects that are dispatched when focus changes.
- *
- *  @see mx.core.UIComponent
- *  
- *  @langversion 3.0
- *  @playerversion Flash 9
- *  @playerversion AIR 1.1
- *  @productversion Royale 0.9.3
- *  @royalesuppresspublicvarwarning
- */
-COMPILE::JS
-public class ErrorEvent extends org.apache.royale.events.Event
-{
-    public static const ERROR:String = "error";
-	
-	//--------------------------------------------------------------------------
-	//
-	//  Class constants
-	//
-	//--------------------------------------------------------------------------
-
-	
-	//--------------------------------------------------------------------------
-	//
-	//  Constructor
-	//
-	//--------------------------------------------------------------------------
-
-	/**
-	 *  Constructor.
-	 *
-	 *  @param type The event type; indicates the action that caused the event.
-	 *
-	 *  @param bubbles Specifies whether the event can bubble
-	 *  up the display list hierarchy.
-	 *
-	 *  @param cancelable Specifies whether the behavior
-	 *  associated with the event can be prevented.
-	 *  
-	 *  @langversion 3.0
-	 *  @playerversion Flash 9
-	 *  @playerversion AIR 1.1
-	 *  @productversion Royale 0.9.3
-	 */
-	public function ErrorEvent(type:String, bubbles:Boolean = false,
-							  cancelable:Boolean = false, text:String = "", id:int = 0
-							  )
-	{
-		super(type, bubbles, cancelable);
-        this.text = text;
-	}
-	
-
-    public var text:String;	
-
-	
-}
-
-}
+////////////////////////////////////////////////////////////////////////////////
+//
+//  Licensed to the Apache Software Foundation (ASF) under one or more
+//  contributor license agreements.  See the NOTICE file distributed with
+//  this work for additional information regarding copyright ownership.
+//  The ASF licenses this file to You under the Apache License, Version 2.0
+//  (the "License"); you may not use this file except in compliance with
+//  the License.  You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+//  Unless required by applicable law or agreed to in writing, software
+//  distributed under the License is distributed on an "AS IS" BASIS,
+//  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//  See the License for the specific language governing permissions and
+//  limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+
+package mx.events
+{
+COMPILE::SWF
+{
+import flash.events.ErrorEvent;        
+}
+/* import mx.events.Event;*/
+import org.apache.royale.events.Event;
+import org.apache.royale.events.IRoyaleEvent;
+
+/**
+ *
+ *  
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion Royale 0.9.3
+ *  @royalesuppresspublicvarwarning
+ */
+COMPILE::SWF
+public class ErrorEvent extends flash.events.ErrorEvent
+{
+    public static const ERROR:String = "error";
+    
+	public function ErrorEvent(type:String, bubbles:Boolean = false,
+							  cancelable:Boolean = false, text:String = "", id:int = 0
+							  )
+	{
+		super(type, bubbles, cancelable,text,id);
+	}
+}
+
+/**
+ *  Represents event objects that are dispatched when focus changes.
+ *
+ *  @see mx.core.UIComponent
+ *  
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion Royale 0.9.3
+ *  @royalesuppresspublicvarwarning
+ */
+COMPILE::JS
+public class ErrorEvent extends org.apache.royale.events.Event
+{
+    public static const ERROR:String = "error";
+	
+	//--------------------------------------------------------------------------
+	//
+	//  Class constants
+	//
+	//--------------------------------------------------------------------------
+
+	
+	//--------------------------------------------------------------------------
+	//
+	//  Constructor
+	//
+	//--------------------------------------------------------------------------
+
+	/**
+	 *  Constructor.
+	 *
+	 *  @param type The event type; indicates the action that caused the event.
+	 *
+	 *  @param bubbles Specifies whether the event can bubble
+	 *  up the display list hierarchy.
+	 *
+	 *  @param cancelable Specifies whether the behavior
+	 *  associated with the event can be prevented.
+	 *  
+	 *  @langversion 3.0
+	 *  @playerversion Flash 9
+	 *  @playerversion AIR 1.1
+	 *  @productversion Royale 0.9.3
+	 */
+	public function ErrorEvent(type:String, bubbles:Boolean = false,
+							  cancelable:Boolean = false, text:String = "", id:int = 0
+							  )
+	{
+		super(type, bubbles, cancelable);
+        this.text = text;
+	}
+	
+
+    public var text:String;	
+
+	
+}
+
+}
diff --git a/frameworks/projects/MXRoyale/src/main/royale/mx/events/FlexEvent.as b/frameworks/projects/MXRoyaleBase/src/main/royale/mx/events/FlexEvent.as
similarity index 100%
rename from frameworks/projects/MXRoyale/src/main/royale/mx/events/FlexEvent.as
rename to frameworks/projects/MXRoyaleBase/src/main/royale/mx/events/FlexEvent.as
diff --git a/frameworks/projects/MXRoyale/src/main/royale/mx/events/HTTPStatusEvent.as b/frameworks/projects/MXRoyaleBase/src/main/royale/mx/events/HTTPStatusEvent.as
similarity index 96%
rename from frameworks/projects/MXRoyale/src/main/royale/mx/events/HTTPStatusEvent.as
rename to frameworks/projects/MXRoyaleBase/src/main/royale/mx/events/HTTPStatusEvent.as
index 1882255..11d8eac 100644
--- a/frameworks/projects/MXRoyale/src/main/royale/mx/events/HTTPStatusEvent.as
+++ b/frameworks/projects/MXRoyaleBase/src/main/royale/mx/events/HTTPStatusEvent.as
@@ -1,113 +1,113 @@
-////////////////////////////////////////////////////////////////////////////////
-//
-//  Licensed to the Apache Software Foundation (ASF) under one or more
-//  contributor license agreements.  See the NOTICE file distributed with
-//  this work for additional information regarding copyright ownership.
-//  The ASF licenses this file to You under the Apache License, Version 2.0
-//  (the "License"); you may not use this file except in compliance with
-//  the License.  You may obtain a copy of the License at
-//
-//      http://www.apache.org/licenses/LICENSE-2.0
-//
-//  Unless required by applicable law or agreed to in writing, software
-//  distributed under the License is distributed on an "AS IS" BASIS,
-//  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-//  See the License for the specific language governing permissions and
-//  limitations under the License.
-//
-////////////////////////////////////////////////////////////////////////////////
-
-package mx.events
-{
-	COMPILE::SWF
-		{
-			import flash.events.HTTPStatusEvent;        
-		}
-		/* import mx.events.Event;*/
-		import org.apache.royale.events.Event;
-	import org.apache.royale.events.IRoyaleEvent;
-	
-	/**
-	 *
-	 *  
-	 *  @langversion 3.0
-	 *  @playerversion Flash 9
-	 *  @playerversion AIR 1.1
-	 *  @productversion Royale 0.9.3
-	 *  @royalesuppresspublicvarwarning
-	 */
-	COMPILE::SWF
-	public class HTTPStatusEvent extends flash.events.HTTPStatusEvent
-	{
-		public static const HTTP_STATUS:String = "httpStatus";
-		
-		public function HTTPStatusEvent(type:String, bubbles:Boolean = false, 
-										cancelable:Boolean = false, status:int = 0)
-		{
-			super(type, bubbles, cancelable,status);
-		}
-		
-	}
-	
-	/**
-	 *  Represents event objects that are dispatched when focus changes.
-	 *
-	 *  @see mx.core.UIComponent
-	 *  
-	 *  @langversion 3.0
-	 *  @playerversion Flash 9
-	 *  @playerversion AIR 1.1
-	 *  @productversion Royale 0.9.3
-	 *  @royalesuppresspublicvarwarning
-	 */
-	COMPILE::JS
-	public class HTTPStatusEvent extends org.apache.royale.events.Event
-	{
-		/*  include "../core/Version.as"; */
-		public static const HTTP_STATUS:String = "httpStatus";
-		private var m_status:int;
-		
-		//--------------------------------------------------------------------------
-		//
-		//  Class constants
-		//
-		//--------------------------------------------------------------------------
-		
-		
-		//--------------------------------------------------------------------------
-		//
-		//  Constructor
-		//
-		//--------------------------------------------------------------------------
-		
-		/**
-		 *  Constructor.
-		 *
-		 *  @param type The event type; indicates the action that caused the event.
-		 *
-		 *  @param bubbles Specifies whether the event can bubble
-		 *  up the display list hierarchy.
-		 *
-		 *  @param cancelable Specifies whether the behavior
-		 *  associated with the event can be prevented.
-		 *  
-		 *  @langversion 3.0
-		 *  @playerversion Flash 9
-		 *  @playerversion AIR 1.1
-		 *  @productversion Royale 0.9.3
-		 */
-		public function HTTPStatusEvent(type:String, bubbles:Boolean = false,
-										cancelable:Boolean = false, status:int = 0)
-		{
-			super(type, bubbles, cancelable);
-			m_status = status;
-		}
-		
-		public function get status() : int
-		{
-			return m_status;
-		}		
-		
-	}
-	
-}
+////////////////////////////////////////////////////////////////////////////////
+//
+//  Licensed to the Apache Software Foundation (ASF) under one or more
+//  contributor license agreements.  See the NOTICE file distributed with
+//  this work for additional information regarding copyright ownership.
+//  The ASF licenses this file to You under the Apache License, Version 2.0
+//  (the "License"); you may not use this file except in compliance with
+//  the License.  You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+//  Unless required by applicable law or agreed to in writing, software
+//  distributed under the License is distributed on an "AS IS" BASIS,
+//  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//  See the License for the specific language governing permissions and
+//  limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+
+package mx.events
+{
+	COMPILE::SWF
+		{
+			import flash.events.HTTPStatusEvent;        
+		}
+		/* import mx.events.Event;*/
+		import org.apache.royale.events.Event;
+	import org.apache.royale.events.IRoyaleEvent;
+	
+	/**
+	 *
+	 *  
+	 *  @langversion 3.0
+	 *  @playerversion Flash 9
+	 *  @playerversion AIR 1.1
+	 *  @productversion Royale 0.9.3
+	 *  @royalesuppresspublicvarwarning
+	 */
+	COMPILE::SWF
+	public class HTTPStatusEvent extends flash.events.HTTPStatusEvent
+	{
+		public static const HTTP_STATUS:String = "httpStatus";
+		
+		public function HTTPStatusEvent(type:String, bubbles:Boolean = false, 
+										cancelable:Boolean = false, status:int = 0)
+		{
+			super(type, bubbles, cancelable,status);
+		}
+		
+	}
+	
+	/**
+	 *  Represents event objects that are dispatched when focus changes.
+	 *
+	 *  @see mx.core.UIComponent
+	 *  
+	 *  @langversion 3.0
+	 *  @playerversion Flash 9
+	 *  @playerversion AIR 1.1
+	 *  @productversion Royale 0.9.3
+	 *  @royalesuppresspublicvarwarning
+	 */
+	COMPILE::JS
+	public class HTTPStatusEvent extends org.apache.royale.events.Event
+	{
+		/*  include "../core/Version.as"; */
+		public static const HTTP_STATUS:String = "httpStatus";
+		private var m_status:int;
+		
+		//--------------------------------------------------------------------------
+		//
+		//  Class constants
+		//
+		//--------------------------------------------------------------------------
+		
+		
+		//--------------------------------------------------------------------------
+		//
+		//  Constructor
+		//
+		//--------------------------------------------------------------------------
+		
+		/**
+		 *  Constructor.
+		 *
+		 *  @param type The event type; indicates the action that caused the event.
+		 *
+		 *  @param bubbles Specifies whether the event can bubble
+		 *  up the display list hierarchy.
+		 *
+		 *  @param cancelable Specifies whether the behavior
+		 *  associated with the event can be prevented.
+		 *  
+		 *  @langversion 3.0
+		 *  @playerversion Flash 9
+		 *  @playerversion AIR 1.1
+		 *  @productversion Royale 0.9.3
+		 */
+		public function HTTPStatusEvent(type:String, bubbles:Boolean = false,
+										cancelable:Boolean = false, status:int = 0)
+		{
+			super(type, bubbles, cancelable);
+			m_status = status;
+		}
+		
+		public function get status() : int
+		{
+			return m_status;
+		}		
+		
+	}
+	
+}
diff --git a/frameworks/projects/MXRoyale/src/main/royale/mx/events/IOErrorEvent.as b/frameworks/projects/MXRoyaleBase/src/main/royale/mx/events/IOErrorEvent.as
similarity index 96%
rename from frameworks/projects/MXRoyale/src/main/royale/mx/events/IOErrorEvent.as
rename to frameworks/projects/MXRoyaleBase/src/main/royale/mx/events/IOErrorEvent.as
index 6bda6a6..dd0112a 100644
--- a/frameworks/projects/MXRoyale/src/main/royale/mx/events/IOErrorEvent.as
+++ b/frameworks/projects/MXRoyaleBase/src/main/royale/mx/events/IOErrorEvent.as
@@ -1,111 +1,111 @@
-////////////////////////////////////////////////////////////////////////////////
-//
-//  Licensed to the Apache Software Foundation (ASF) under one or more
-//  contributor license agreements.  See the NOTICE file distributed with
-//  this work for additional information regarding copyright ownership.
-//  The ASF licenses this file to You under the Apache License, Version 2.0
-//  (the "License"); you may not use this file except in compliance with
-//  the License.  You may obtain a copy of the License at
-//
-//      http://www.apache.org/licenses/LICENSE-2.0
-//
-//  Unless required by applicable law or agreed to in writing, software
-//  distributed under the License is distributed on an "AS IS" BASIS,
-//  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-//  See the License for the specific language governing permissions and
-//  limitations under the License.
-//
-////////////////////////////////////////////////////////////////////////////////
-
-package mx.events
-{
-COMPILE::SWF
-{
-import flash.events.IOErrorEvent;        
-}
-/* import mx.events.Event;*/
-import org.apache.royale.events.Event;
-import org.apache.royale.events.IRoyaleEvent;
-
-/**
- *
- *  
- *  @langversion 3.0
- *  @playerversion Flash 9
- *  @playerversion AIR 1.1
- *  @productversion Royale 0.9.3
- *  @royalesuppresspublicvarwarning
- */
-COMPILE::SWF
-public class IOErrorEvent extends flash.events.IOErrorEvent
-{
-	public static const IO_ERROR:String = "ioError";
-	
-	public function IOErrorEvent(type:String, bubbles:Boolean = false,
-							  cancelable:Boolean = false, text:String = "", id:int = 0
-							  )
-	{
-		super(type, bubbles, cancelable,text,id);
-	}
-}
-
-/**
- *  Represents event objects that are dispatched when focus changes.
- *
- *  @see mx.core.UIComponent
- *  
- *  @langversion 3.0
- *  @playerversion Flash 9
- *  @playerversion AIR 1.1
- *  @productversion Royale 0.9.3
- *  @royalesuppresspublicvarwarning
- */
-COMPILE::JS
-public class IOErrorEvent extends ErrorEvent
-{
-   /*  include "../core/Version.as"; */
-	public static const IO_ERROR:String = "ioError";
-	
-	//--------------------------------------------------------------------------
-	//
-	//  Class constants
-	//
-	//--------------------------------------------------------------------------
-
-	
-	//--------------------------------------------------------------------------
-	//
-	//  Constructor
-	//
-	//--------------------------------------------------------------------------
-
-	/**
-	 *  Constructor.
-	 *
-	 *  @param type The event type; indicates the action that caused the event.
-	 *
-	 *  @param bubbles Specifies whether the event can bubble
-	 *  up the display list hierarchy.
-	 *
-	 *  @param cancelable Specifies whether the behavior
-	 *  associated with the event can be prevented.
-	 *  
-	 *  @langversion 3.0
-	 *  @playerversion Flash 9
-	 *  @playerversion AIR 1.1
-	 *  @productversion Royale 0.9.3
-	 */
-	public function IOErrorEvent(type:String, bubbles:Boolean = false,
-							  cancelable:Boolean = false, text:String = "", id:int = 0
-							  )
-	{
-		super(type, bubbles, cancelable);
-	}
-	
-
-	
-
-	
-}
-
-}
+////////////////////////////////////////////////////////////////////////////////
+//
+//  Licensed to the Apache Software Foundation (ASF) under one or more
+//  contributor license agreements.  See the NOTICE file distributed with
+//  this work for additional information regarding copyright ownership.
+//  The ASF licenses this file to You under the Apache License, Version 2.0
+//  (the "License"); you may not use this file except in compliance with
+//  the License.  You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+//  Unless required by applicable law or agreed to in writing, software
+//  distributed under the License is distributed on an "AS IS" BASIS,
+//  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//  See the License for the specific language governing permissions and
+//  limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+
+package mx.events
+{
+COMPILE::SWF
+{
+import flash.events.IOErrorEvent;        
+}
+/* import mx.events.Event;*/
+import org.apache.royale.events.Event;
+import org.apache.royale.events.IRoyaleEvent;
+
+/**
+ *
+ *  
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion Royale 0.9.3
+ *  @royalesuppresspublicvarwarning
+ */
+COMPILE::SWF
+public class IOErrorEvent extends flash.events.IOErrorEvent
+{
+	public static const IO_ERROR:String = "ioError";
+	
+	public function IOErrorEvent(type:String, bubbles:Boolean = false,
+							  cancelable:Boolean = false, text:String = "", id:int = 0
+							  )
+	{
+		super(type, bubbles, cancelable,text,id);
+	}
+}
+
+/**
+ *  Represents event objects that are dispatched when focus changes.
+ *
+ *  @see mx.core.UIComponent
+ *  
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion Royale 0.9.3
+ *  @royalesuppresspublicvarwarning
+ */
+COMPILE::JS
+public class IOErrorEvent extends ErrorEvent
+{
+   /*  include "../core/Version.as"; */
+	public static const IO_ERROR:String = "ioError";
+	
+	//--------------------------------------------------------------------------
+	//
+	//  Class constants
+	//
+	//--------------------------------------------------------------------------
+
+	
+	//--------------------------------------------------------------------------
+	//
+	//  Constructor
+	//
+	//--------------------------------------------------------------------------
+
+	/**
+	 *  Constructor.
+	 *
+	 *  @param type The event type; indicates the action that caused the event.
+	 *
+	 *  @param bubbles Specifies whether the event can bubble
+	 *  up the display list hierarchy.
+	 *
+	 *  @param cancelable Specifies whether the behavior
+	 *  associated with the event can be prevented.
+	 *  
+	 *  @langversion 3.0
+	 *  @playerversion Flash 9
+	 *  @playerversion AIR 1.1
+	 *  @productversion Royale 0.9.3
+	 */
+	public function IOErrorEvent(type:String, bubbles:Boolean = false,
+							  cancelable:Boolean = false, text:String = "", id:int = 0
+							  )
+	{
+		super(type, bubbles, cancelable);
+	}
+	
+
+	
+
+	
+}
+
+}
diff --git a/frameworks/projects/MXRoyale/src/main/royale/mx/events/IndexChangedEvent.as b/frameworks/projects/MXRoyaleBase/src/main/royale/mx/events/IndexChangedEvent.as
similarity index 100%
rename from frameworks/projects/MXRoyale/src/main/royale/mx/events/IndexChangedEvent.as
rename to frameworks/projects/MXRoyaleBase/src/main/royale/mx/events/IndexChangedEvent.as
diff --git a/frameworks/projects/MXRoyale/src/main/royale/mx/events/NetStatusEvent.as b/frameworks/projects/MXRoyaleBase/src/main/royale/mx/events/NetStatusEvent.as
similarity index 96%
rename from frameworks/projects/MXRoyale/src/main/royale/mx/events/NetStatusEvent.as
rename to frameworks/projects/MXRoyaleBase/src/main/royale/mx/events/NetStatusEvent.as
index 31f2b08..9ae66fd 100644
--- a/frameworks/projects/MXRoyale/src/main/royale/mx/events/NetStatusEvent.as
+++ b/frameworks/projects/MXRoyaleBase/src/main/royale/mx/events/NetStatusEvent.as
@@ -1,111 +1,111 @@
-////////////////////////////////////////////////////////////////////////////////
-//
-//  Licensed to the Apache Software Foundation (ASF) under one or more
-//  contributor license agreements.  See the NOTICE file distributed with
-//  this work for additional information regarding copyright ownership.
-//  The ASF licenses this file to You under the Apache License, Version 2.0
-//  (the "License"); you may not use this file except in compliance with
-//  the License.  You may obtain a copy of the License at
-//
-//      http://www.apache.org/licenses/LICENSE-2.0
-//
-//  Unless required by applicable law or agreed to in writing, software
-//  distributed under the License is distributed on an "AS IS" BASIS,
-//  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-//  See the License for the specific language governing permissions and
-//  limitations under the License.
-//
-////////////////////////////////////////////////////////////////////////////////
-
-package mx.events
-{
-COMPILE::SWF
-{
-import flash.events.NetStatusEvent;        
-}
-/* import mx.events.Event;*/
-import org.apache.royale.events.Event;
-import org.apache.royale.events.IRoyaleEvent;
-
-/**
- *
- *  
- *  @langversion 3.0
- *  @playerversion Flash 9
- *  @playerversion AIR 1.1
- *  @productversion Royale 0.9.3
- *  @royalesuppresspublicvarwarning
- */
-COMPILE::SWF
-public class NetStatusEvent extends flash.events.NetStatusEvent
-{
-	public static const NET_STATUS:String = "netStatus";
-	public function NetStatusEvent(type:String, bubbles:Boolean = false,
-							  cancelable:Boolean = false, info:Object = null
-							  )
-	{
-		super(type, bubbles, cancelable,info);
-	}
-}
-
-/**
- *  Represents event objects that are dispatched when focus changes.
- *
- *  @see mx.core.UIComponent
- *  
- *  @langversion 3.0
- *  @playerversion Flash 9
- *  @playerversion AIR 1.1
- *  @productversion Royale 0.9.3
- *  @royalesuppresspublicvarwarning
- */
-COMPILE::JS
-public class NetStatusEvent extends org.apache.royale.events.Event
-{
-   /*  include "../core/Version.as"; */
-	public static const NET_STATUS:String = "netStatus";
-	
-	//--------------------------------------------------------------------------
-	//
-	//  Class constants
-	//
-	//--------------------------------------------------------------------------
-
-	
-	//--------------------------------------------------------------------------
-	//
-	//  Constructor
-	//
-	//--------------------------------------------------------------------------
-
-	/**
-	 *  Constructor.
-	 *
-	 *  @param type The event type; indicates the action that caused the event.
-	 *
-	 *  @param bubbles Specifies whether the event can bubble
-	 *  up the display list hierarchy.
-	 *
-	 *  @param cancelable Specifies whether the behavior
-	 *  associated with the event can be prevented.
-	 *  
-	 *  @langversion 3.0
-	 *  @playerversion Flash 9
-	 *  @playerversion AIR 1.1
-	 *  @productversion Royale 0.9.3
-	 */
-	public function NetStatusEvent(type:String, bubbles:Boolean = false,
-							  cancelable:Boolean = false, info:Object = null
-							  )
-	{
-		super(type, bubbles, cancelable);
-		this.info = info;
-	}
-	
-
-	public var info:Object;
-
-	
-}
-
-}
+////////////////////////////////////////////////////////////////////////////////
+//
+//  Licensed to the Apache Software Foundation (ASF) under one or more
+//  contributor license agreements.  See the NOTICE file distributed with
+//  this work for additional information regarding copyright ownership.
+//  The ASF licenses this file to You under the Apache License, Version 2.0
+//  (the "License"); you may not use this file except in compliance with
+//  the License.  You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+//  Unless required by applicable law or agreed to in writing, software
+//  distributed under the License is distributed on an "AS IS" BASIS,
+//  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//  See the License for the specific language governing permissions and
+//  limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+
+package mx.events
+{
+COMPILE::SWF
+{
+import flash.events.NetStatusEvent;        
+}
+/* import mx.events.Event;*/
+import org.apache.royale.events.Event;
+import org.apache.royale.events.IRoyaleEvent;
+
+/**
+ *
+ *  
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion Royale 0.9.3
+ *  @royalesuppresspublicvarwarning
+ */
+COMPILE::SWF
+public class NetStatusEvent extends flash.events.NetStatusEvent
+{
+	public static const NET_STATUS:String = "netStatus";
+	public function NetStatusEvent(type:String, bubbles:Boolean = false,
+							  cancelable:Boolean = false, info:Object = null
+							  )
+	{
+		super(type, bubbles, cancelable,info);
+	}
+}
+
+/**
+ *  Represents event objects that are dispatched when focus changes.
+ *
+ *  @see mx.core.UIComponent
+ *  
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion Royale 0.9.3
+ *  @royalesuppresspublicvarwarning
+ */
+COMPILE::JS
+public class NetStatusEvent extends org.apache.royale.events.Event
+{
+   /*  include "../core/Version.as"; */
+	public static const NET_STATUS:String = "netStatus";
+	
+	//--------------------------------------------------------------------------
+	//
+	//  Class constants
+	//
+	//--------------------------------------------------------------------------
+
+	
+	//--------------------------------------------------------------------------
+	//
+	//  Constructor
+	//
+	//--------------------------------------------------------------------------
+
+	/**
+	 *  Constructor.
+	 *
+	 *  @param type The event type; indicates the action that caused the event.
+	 *
+	 *  @param bubbles Specifies whether the event can bubble
+	 *  up the display list hierarchy.
+	 *
+	 *  @param cancelable Specifies whether the behavior
+	 *  associated with the event can be prevented.
+	 *  
+	 *  @langversion 3.0
+	 *  @playerversion Flash 9
+	 *  @playerversion AIR 1.1
+	 *  @productversion Royale 0.9.3
+	 */
+	public function NetStatusEvent(type:String, bubbles:Boolean = false,
+							  cancelable:Boolean = false, info:Object = null
+							  )
+	{
+		super(type, bubbles, cancelable);
+		this.info = info;
+	}
+	
+
+	public var info:Object;
+
+	
+}
+
+}
diff --git a/frameworks/projects/MXRoyale/src/main/royale/mx/events/ProgressEvent.as b/frameworks/projects/MXRoyaleBase/src/main/royale/mx/events/ProgressEvent.as
similarity index 100%
rename from frameworks/projects/MXRoyale/src/main/royale/mx/events/ProgressEvent.as
rename to frameworks/projects/MXRoyaleBase/src/main/royale/mx/events/ProgressEvent.as
diff --git a/frameworks/projects/MXRoyale/src/main/royale/mx/events/PropertyChangeEvent.as b/frameworks/projects/MXRoyaleBase/src/main/royale/mx/events/PropertyChangeEvent.as
similarity index 100%
rename from frameworks/projects/MXRoyale/src/main/royale/mx/events/PropertyChangeEvent.as
rename to frameworks/projects/MXRoyaleBase/src/main/royale/mx/events/PropertyChangeEvent.as
diff --git a/frameworks/projects/MXRoyale/src/main/royale/mx/events/PropertyChangeEventKind.as b/frameworks/projects/MXRoyaleBase/src/main/royale/mx/events/PropertyChangeEventKind.as
similarity index 100%
rename from frameworks/projects/MXRoyale/src/main/royale/mx/events/PropertyChangeEventKind.as
rename to frameworks/projects/MXRoyaleBase/src/main/royale/mx/events/PropertyChangeEventKind.as
diff --git a/frameworks/projects/MXRoyale/src/main/royale/mx/events/RSLEvent.as b/frameworks/projects/MXRoyaleBase/src/main/royale/mx/events/RSLEvent.as
similarity index 100%
rename from frameworks/projects/MXRoyale/src/main/royale/mx/events/RSLEvent.as
rename to frameworks/projects/MXRoyaleBase/src/main/royale/mx/events/RSLEvent.as
diff --git a/frameworks/projects/MXRoyale/src/main/royale/mx/events/ResourceEvent.as b/frameworks/projects/MXRoyaleBase/src/main/royale/mx/events/ResourceEvent.as
similarity index 100%
rename from frameworks/projects/MXRoyale/src/main/royale/mx/events/ResourceEvent.as
rename to frameworks/projects/MXRoyaleBase/src/main/royale/mx/events/ResourceEvent.as
diff --git a/frameworks/projects/MXRoyale/src/main/royale/mx/events/SecurityErrorEvent.as b/frameworks/projects/MXRoyaleBase/src/main/royale/mx/events/SecurityErrorEvent.as
similarity index 96%
rename from frameworks/projects/MXRoyale/src/main/royale/mx/events/SecurityErrorEvent.as
rename to frameworks/projects/MXRoyaleBase/src/main/royale/mx/events/SecurityErrorEvent.as
index 1db1491..186bf08 100644
--- a/frameworks/projects/MXRoyale/src/main/royale/mx/events/SecurityErrorEvent.as
+++ b/frameworks/projects/MXRoyaleBase/src/main/royale/mx/events/SecurityErrorEvent.as
@@ -1,109 +1,109 @@
-////////////////////////////////////////////////////////////////////////////////
-//
-//  Licensed to the Apache Software Foundation (ASF) under one or more
-//  contributor license agreements.  See the NOTICE file distributed with
-//  this work for additional information regarding copyright ownership.
-//  The ASF licenses this file to You under the Apache License, Version 2.0
-//  (the "License"); you may not use this file except in compliance with
-//  the License.  You may obtain a copy of the License at
-//
-//      http://www.apache.org/licenses/LICENSE-2.0
-//
-//  Unless required by applicable law or agreed to in writing, software
-//  distributed under the License is distributed on an "AS IS" BASIS,
-//  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-//  See the License for the specific language governing permissions and
-//  limitations under the License.
-//
-////////////////////////////////////////////////////////////////////////////////
-
-package mx.events
-{
-COMPILE::SWF
-{
-import flash.events.SecurityErrorEvent;        
-}
-/* import mx.events.Event;*/
-import org.apache.royale.events.Event;
-import org.apache.royale.events.IRoyaleEvent;
-
-/**
- *
- *  
- *  @langversion 3.0
- *  @playerversion Flash 9
- *  @playerversion AIR 1.1
- *  @productversion Royale 0.9.3
- *  @royalesuppresspublicvarwarning
- */
-COMPILE::SWF
-public class SecurityErrorEvent extends flash.events.SecurityErrorEvent
-{
-	public static const SECURITY_ERROR:String = "securityError";
-	
-	public function SecurityErrorEvent(type:String, bubbles:Boolean = false, 
-	cancelable:Boolean = false, text:String = "", id:int = 0)
-	{
-		super(type, bubbles, cancelable,text,id);
-	}
-}
-
-/**
- *  Represents event objects that are dispatched when focus changes.
- *
- *  @see mx.core.UIComponent
- *  
- *  @langversion 3.0
- *  @playerversion Flash 9
- *  @playerversion AIR 1.1
- *  @productversion Royale 0.9.3
- *  @royalesuppresspublicvarwarning
- */
-COMPILE::JS
-public class SecurityErrorEvent extends ErrorEvent
-{
-   /*  include "../core/Version.as"; */
-	public static const SECURITY_ERROR:String = "securityError";
-	
-	//--------------------------------------------------------------------------
-	//
-	//  Class constants
-	//
-	//--------------------------------------------------------------------------
-
-	
-	//--------------------------------------------------------------------------
-	//
-	//  Constructor
-	//
-	//--------------------------------------------------------------------------
-
-	/**
-	 *  Constructor.
-	 *
-	 *  @param type The event type; indicates the action that caused the event.
-	 *
-	 *  @param bubbles Specifies whether the event can bubble
-	 *  up the display list hierarchy.
-	 *
-	 *  @param cancelable Specifies whether the behavior
-	 *  associated with the event can be prevented.
-	 *  
-	 *  @langversion 3.0
-	 *  @playerversion Flash 9
-	 *  @playerversion AIR 1.1
-	 *  @productversion Royale 0.9.3
-	 */
-	public function SecurityErrorEvent(type:String, bubbles:Boolean = false, 
-	cancelable:Boolean = false, text:String = "", id:int = 0)
-	{
-		super(type, bubbles, cancelable);
-	}
-	
-
-	
-
-	
-}
-
-}
+////////////////////////////////////////////////////////////////////////////////
+//
+//  Licensed to the Apache Software Foundation (ASF) under one or more
+//  contributor license agreements.  See the NOTICE file distributed with
+//  this work for additional information regarding copyright ownership.
+//  The ASF licenses this file to You under the Apache License, Version 2.0
+//  (the "License"); you may not use this file except in compliance with
+//  the License.  You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+//  Unless required by applicable law or agreed to in writing, software
+//  distributed under the License is distributed on an "AS IS" BASIS,
+//  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//  See the License for the specific language governing permissions and
+//  limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+
+package mx.events
+{
+COMPILE::SWF
+{
+import flash.events.SecurityErrorEvent;        
+}
+/* import mx.events.Event;*/
+import org.apache.royale.events.Event;
+import org.apache.royale.events.IRoyaleEvent;
+
+/**
+ *
+ *  
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion Royale 0.9.3
+ *  @royalesuppresspublicvarwarning
+ */
+COMPILE::SWF
+public class SecurityErrorEvent extends flash.events.SecurityErrorEvent
+{
+	public static const SECURITY_ERROR:String = "securityError";
+	
+	public function SecurityErrorEvent(type:String, bubbles:Boolean = false, 
+	cancelable:Boolean = false, text:String = "", id:int = 0)
+	{
+		super(type, bubbles, cancelable,text,id);
+	}
+}
+
+/**
+ *  Represents event objects that are dispatched when focus changes.
+ *
+ *  @see mx.core.UIComponent
+ *  
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion Royale 0.9.3
+ *  @royalesuppresspublicvarwarning
+ */
+COMPILE::JS
+public class SecurityErrorEvent extends ErrorEvent
+{
+   /*  include "../core/Version.as"; */
+	public static const SECURITY_ERROR:String = "securityError";
+	
+	//--------------------------------------------------------------------------
+	//
+	//  Class constants
+	//
+	//--------------------------------------------------------------------------
+
+	
+	//--------------------------------------------------------------------------
+	//
+	//  Constructor
+	//
+	//--------------------------------------------------------------------------
+
+	/**
+	 *  Constructor.
+	 *
+	 *  @param type The event type; indicates the action that caused the event.
+	 *
+	 *  @param bubbles Specifies whether the event can bubble
+	 *  up the display list hierarchy.
+	 *
+	 *  @param cancelable Specifies whether the behavior
+	 *  associated with the event can be prevented.
+	 *  
+	 *  @langversion 3.0
+	 *  @playerversion Flash 9
+	 *  @playerversion AIR 1.1
+	 *  @productversion Royale 0.9.3
+	 */
+	public function SecurityErrorEvent(type:String, bubbles:Boolean = false, 
+	cancelable:Boolean = false, text:String = "", id:int = 0)
+	{
+		super(type, bubbles, cancelable);
+	}
+	
+
+	
+
+	
+}
+
+}
diff --git a/frameworks/projects/MXRoyale/src/main/royale/mx/events/TextEvent.as b/frameworks/projects/MXRoyaleBase/src/main/royale/mx/events/TextEvent.as
similarity index 96%
rename from frameworks/projects/MXRoyale/src/main/royale/mx/events/TextEvent.as
rename to frameworks/projects/MXRoyaleBase/src/main/royale/mx/events/TextEvent.as
index 05b506a..a3bde3b 100644
--- a/frameworks/projects/MXRoyale/src/main/royale/mx/events/TextEvent.as
+++ b/frameworks/projects/MXRoyaleBase/src/main/royale/mx/events/TextEvent.as
@@ -1,127 +1,127 @@
-////////////////////////////////////////////////////////////////////////////////
-//
-//  Licensed to the Apache Software Foundation (ASF) under one or more
-//  contributor license agreements.  See the NOTICE file distributed with
-//  this work for additional information regarding copyright ownership.
-//  The ASF licenses this file to You under the Apache License, Version 2.0
-//  (the "License"); you may not use this file except in compliance with
-//  the License.  You may obtain a copy of the License at
-//
-//      http://www.apache.org/licenses/LICENSE-2.0
-//
-//  Unless required by applicable law or agreed to in writing, software
-//  distributed under the License is distributed on an "AS IS" BASIS,
-//  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-//  See the License for the specific language governing permissions and
-//  limitations under the License.
-//
-////////////////////////////////////////////////////////////////////////////////
-
-package mx.events
-{
-COMPILE::SWF
-{
-import flash.events.TextEvent;  
-}
-/* import mx.events.Event;*/
-import org.apache.royale.events.Event;
-import org.apache.royale.events.IRoyaleEvent;
-
-/**
- *
- *  
- *  @langversion 3.0
- *  @playerversion Flash 9
- *  @playerversion AIR 1.1
- *  @productversion Royale 0.9.3
- *  @royalesuppresspublicvarwarning
- */
-COMPILE::SWF
-public class TextEvent extends flash.events.TextEvent
-{
-	private static function platformConstant(s:String):String
-        {
-            return s;
-        }
-		
-    public static const TEXT_INPUT : String = platformConstant("textInput"); 
-		
-	public function TextEvent(type:String, bubbles:Boolean = false, cancelable:Boolean = false, text:String = "")
-    {
-        super(type, bubbles, cancelable);
-        this.text = text;
-    }
-    
-   
-}
-
-/**
- *
- *  
- *  @langversion 3.0
- *  @playerversion Flash 9
- *  @playerversion AIR 1.1
- *  @productversion Royale 0.9.3
- *  @royalesuppresspublicvarwarning
- */
-COMPILE::JS
-public class TextEvent extends org.apache.royale.events.Event
-{
-   private static function platformConstant(s:String):String
-        {
-            return s;
-        }
-		
-    public static const TEXT_INPUT : String = platformConstant("textInput"); 
-		
-		
-	//--------------------------------------------------------------------------
-	//
-	//  Class constants
-	//
-	//--------------------------------------------------------------------------
-
-	
-	//--------------------------------------------------------------------------
-	//
-	//  Constructor
-	//
-	//--------------------------------------------------------------------------
-
-	/**
-	 *  Constructor.
-	 *
-	 *  @param type The event type; indicates the action that caused the event.
-	 *
-	 *  @param bubbles Specifies whether the event can bubble
-	 *  up the display list hierarchy.
-	 *
-	 *  @param cancelable Specifies whether the behavior
-	 *  associated with the event can be prevented.
-	 *  
-	 *  @langversion 3.0
-	 *  @playerversion Flash 9
-	 *  @playerversion AIR 1.1
-	 *  @productversion Royale 0.9.3
-	 */
-	public function TextEvent(type:String, bubbles:Boolean = false, cancelable:Boolean = false, text:String = "")
-							  
-	{
-		super(type, bubbles, cancelable);
-	}
-	
-	private var _text:String;
-	public function get text():String
-	{
-		return _text;
-	}
-    public function set text(value:String):void
-	{
-		_text = value;
-	}
-	
-
-	
-}
-
-}
+////////////////////////////////////////////////////////////////////////////////
+//
+//  Licensed to the Apache Software Foundation (ASF) under one or more
+//  contributor license agreements.  See the NOTICE file distributed with
+//  this work for additional information regarding copyright ownership.
+//  The ASF licenses this file to You under the Apache License, Version 2.0
+//  (the "License"); you may not use this file except in compliance with
+//  the License.  You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+//  Unless required by applicable law or agreed to in writing, software
+//  distributed under the License is distributed on an "AS IS" BASIS,
+//  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//  See the License for the specific language governing permissions and
+//  limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+
+package mx.events
+{
+COMPILE::SWF
+{
+import flash.events.TextEvent;  
+}
+/* import mx.events.Event;*/
+import org.apache.royale.events.Event;
+import org.apache.royale.events.IRoyaleEvent;
+
+/**
+ *
+ *  
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion Royale 0.9.3
+ *  @royalesuppresspublicvarwarning
+ */
+COMPILE::SWF
+public class TextEvent extends flash.events.TextEvent
+{
+	private static function platformConstant(s:String):String
+        {
+            return s;
+        }
+		
+    public static const TEXT_INPUT : String = platformConstant("textInput"); 
+		
+	public function TextEvent(type:String, bubbles:Boolean = false, cancelable:Boolean = false, text:String = "")
+    {
+        super(type, bubbles, cancelable);
+        this.text = text;
+    }
+    
+   
+}
+
+/**
+ *
+ *  
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion Royale 0.9.3
+ *  @royalesuppresspublicvarwarning
+ */
+COMPILE::JS
+public class TextEvent extends org.apache.royale.events.Event
+{
+   private static function platformConstant(s:String):String
+        {
+            return s;
+        }
+		
+    public static const TEXT_INPUT : String = platformConstant("textInput"); 
+		
+		
+	//--------------------------------------------------------------------------
+	//
+	//  Class constants
+	//
+	//--------------------------------------------------------------------------
+
+	
+	//--------------------------------------------------------------------------
+	//
+	//  Constructor
+	//
+	//--------------------------------------------------------------------------
+
+	/**
+	 *  Constructor.
+	 *
+	 *  @param type The event type; indicates the action that caused the event.
+	 *
+	 *  @param bubbles Specifies whether the event can bubble
+	 *  up the display list hierarchy.
+	 *
+	 *  @param cancelable Specifies whether the behavior
+	 *  associated with the event can be prevented.
+	 *  
+	 *  @langversion 3.0
+	 *  @playerversion Flash 9
+	 *  @playerversion AIR 1.1
+	 *  @productversion Royale 0.9.3
+	 */
+	public function TextEvent(type:String, bubbles:Boolean = false, cancelable:Boolean = false, text:String = "")
+							  
+	{
+		super(type, bubbles, cancelable);
+	}
+	
+	private var _text:String;
+	public function get text():String
+	{
+		return _text;
+	}
+    public function set text(value:String):void
+	{
+		_text = value;
+	}
+	
+
+	
+}
+
+}
diff --git a/frameworks/projects/MXRoyale/src/main/royale/mx/events/TimerEvent.as b/frameworks/projects/MXRoyaleBase/src/main/royale/mx/events/TimerEvent.as
similarity index 100%
rename from frameworks/projects/MXRoyale/src/main/royale/mx/events/TimerEvent.as
rename to frameworks/projects/MXRoyaleBase/src/main/royale/mx/events/TimerEvent.as
diff --git a/frameworks/projects/MXRoyale/src/main/royale/mx/events/ValidationResultEvent.as b/frameworks/projects/MXRoyaleBase/src/main/royale/mx/events/ValidationResultEvent.as
similarity index 97%
rename from frameworks/projects/MXRoyale/src/main/royale/mx/events/ValidationResultEvent.as
rename to frameworks/projects/MXRoyaleBase/src/main/royale/mx/events/ValidationResultEvent.as
index 5147354..ac9a2ad 100644
--- a/frameworks/projects/MXRoyale/src/main/royale/mx/events/ValidationResultEvent.as
+++ b/frameworks/projects/MXRoyaleBase/src/main/royale/mx/events/ValidationResultEvent.as
@@ -1,239 +1,239 @@
-////////////////////////////////////////////////////////////////////////////////
-//
-//  Licensed to the Apache Software Foundation (ASF) under one or more
-//  contributor license agreements.  See the NOTICE file distributed with
-//  this work for additional information regarding copyright ownership.
-//  The ASF licenses this file to You under the Apache License, Version 2.0
-//  (the "License"); you may not use this file except in compliance with
-//  the License.  You may obtain a copy of the License at
-//
-//      http://www.apache.org/licenses/LICENSE-2.0
-//
-//  Unless required by applicable law or agreed to in writing, software
-//  distributed under the License is distributed on an "AS IS" BASIS,
-//  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-//  See the License for the specific language governing permissions and
-//  limitations under the License.
-//
-////////////////////////////////////////////////////////////////////////////////
-
-package mx.events
-{
-
-/* import flash.events.Event; */
-
-import org.apache.royale.events.Event;
-import org.apache.royale.events.IRoyaleEvent;
-/**
- *  The ValidationResultEvent class represents the event object 
- *  passed to the listener for the <code>valid</code> validator event
- *  or the <code>invalid</code> validator event. 
- *
- *  @see mx.validators.Validator
- *  @see mx.validators.ValidationResult
- *  @see mx.validators.RegExpValidationResult
- *  
- *  @langversion 3.0
- *  @playerversion Flash 9
- *  @playerversion AIR 1.1
- *  @productversion Royale 0.9.3
- *  @royalesuppresspublicvarwarning
- */
-public class ValidationResultEvent extends Event
-{
-/*     include "../core/Version.as"; */
-
-	//--------------------------------------------------------------------------
-	//
-	//  Class constants
-	//
-	//--------------------------------------------------------------------------
-	
-	/**
-	 *  The <code>ValidationResultEvent.INVALID</code> constant defines the value of the 
-	 *  <code>type</code> property of the event object for an <code>invalid</code> event.
-	 *  The value of this constant is "invalid".
-	 *
-	 *  <p>The properties of the event object have the following values:</p>
-	 *  <table class="innertable">
-	 *     <tr><th>Property</th><th>Value</th></tr>
-     *     <tr><td><code>bubbles</code></td><td>false</td></tr>
-     *     <tr><td><code>cancelable</code></td><td>false</td></tr>
-     *     <tr><td><code>currentTarget</code></td><td>The Object that defines the 
-     *       event listener that handles the event. For example, if you use 
-     *       <code>myButton.addEventListener()</code> to register an event listener, 
-     *       myButton is the value of the <code>currentTarget</code>. </td></tr>
-     *     <tr><td><code>field</code></td><td>The name of the field that failed validation.</td></tr>
-     *     <tr><td><code>message</code></td><td>A single string that contains 
-     *       every error message from all of the ValidationResult objects in the results Array.</td></tr>
-     *     <tr><td><code>results</code></td><td>An array of ValidationResult objects, 
-     *       one per validated field.</td></tr>
-     *     <tr><td><code>target</code></td><td>The Object that dispatched the event; 
-     *       it is not always the Object listening for the event. 
-     *       Use the <code>currentTarget</code> property to always access the 
-     *       Object listening for the event.</td></tr>
-	 *  </table>
-	 *
-     *  @eventType invalid 
-	 *  
-	 *  @langversion 3.0
-	 *  @playerversion Flash 9
-	 *  @playerversion AIR 1.1
-	 *  @productversion Royale 0.9.3
-	 */
-	public static const INVALID:String = "invalid";
-
-	/**
-	 *  The <code>ValidationResultEvent.VALID</code> constant defines the value of the 
-	 *  <code>type</code> property of the event object for a <code>valid</code>event.
-	 *  The value of this constant is "valid".
-	 *
-	 *  <p>The properties of the event object have the following values:</p>
-	 *  <table class="innertable">
-	 *     <tr><th>Property</th><th>Value</th></tr>
-     *     <tr><td><code>bubbles</code></td><td>false</td></tr>
-     *     <tr><td><code>cancelable</code></td><td>false</td></tr>
-     *     <tr><td><code>currentTarget</code></td><td>The Object that defines the 
-     *       event listener that handles the event. For example, if you use 
-     *       <code>myButton.addEventListener()</code> to register an event listener, 
-     *       myButton is the value of the <code>currentTarget</code>. </td></tr>
-     *     <tr><td><code>field</code></td><td>An empty String.</td></tr>
-     *     <tr><td><code>message</code></td><td>An empty String.</td></tr>
-     *     <tr><td><code>results</code></td><td>An empty Array.</td></tr>
-     *     <tr><td><code>target</code></td><td>The Object that dispatched the event; 
-     *       it is not always the Object listening for the event. 
-     *       Use the <code>currentTarget</code> property to always access the 
-     *       Object listening for the event.</td></tr>
-	 *  </table>
-	 *
-     *  @eventType valid 
-	 *  
-	 *  @langversion 3.0
-	 *  @playerversion Flash 9
-	 *  @playerversion AIR 1.1
-	 *  @productversion Royale 0.9.3
-	 */
-	public static const VALID:String = "valid";
-
-	//--------------------------------------------------------------------------
-	//
-	//  Constructor
-	//
-	//--------------------------------------------------------------------------
-
-	/**
-	 *  Constructor.
-	 *
-	 *  @param type The event type; indicates the action that caused the event.
-	 *
-	 *  @param bubbles Specifies whether the event can bubble up the 
-	 *  display list hierarchy.
-	 *
-	 *  @param cancelable Specifies whether the behavior associated with the event can be prevented.
-	 *
-	 *  @param field The name of the field that failed validation and triggered the event.
-	 *
-	 *  @param results An array of ValidationResult objects, one per validated field. 
-	 *  
-	 *  @langversion 3.0
-	 *  @playerversion Flash 9
-	 *  @playerversion AIR 1.1
-	 *  @productversion Royale 0.9.3
-	 */
-    public function ValidationResultEvent(type:String, bubbles:Boolean = false,
-										  cancelable:Boolean = false,
-										  field:String = null,
-										  results:Array = null)
-    {
-        super(type, bubbles, cancelable);
-
-        this.field = field;
-        this.results = results;
-    }
-
-	//--------------------------------------------------------------------------
-	//
-	//  Properties
-	//
-	//--------------------------------------------------------------------------
-
-	//----------------------------------
-    //  field
-    //----------------------------------
-
-	/**
-	 *  The name of the field that failed validation and triggered the event.
-	 *  
-	 *  @langversion 3.0
-	 *  @playerversion Flash 9
-	 *  @playerversion AIR 1.1
-	 *  @productversion Royale 0.9.3
-	 */
-    public var field:String;
-	
-	//----------------------------------
-    //  message
-    //----------------------------------
-
-	/**
-	 *  A single string that contains every error message from all
-	 *  of the ValidationResult objects in the results Array.
-	 *  
-	 *  @langversion 3.0
-	 *  @playerversion Flash 9
-	 *  @playerversion AIR 1.1
-	 *  @productversion Royale 0.9.3
-	 */
-    public function get message():String
-    {
-        var msg:String = "";
-		var n:int;
-		
-		if (results)
-			n = results.length;
-		
-		for (var i:int = 0; i < n; ++i)
-        {
-			if (results[i].isError)
-			{
-	            msg += msg == "" ? "" : "\n";
-				msg += results[i].errorMessage;
-			}
-        }
-        
-		return msg;
-    }
-
-	//----------------------------------
-    //  results
-    //----------------------------------
-
-	/**
-	 *  An array of ValidationResult objects, one per validated field. 
-	 *
-	 *  @see mx.validators.ValidationResult
-	 *  
-	 *  @langversion 3.0
-	 *  @playerversion Flash 9
-	 *  @playerversion AIR 1.1
-	 *  @productversion Royale 0.9.3
-	 */
-    public var results:Array;
-	
-	//--------------------------------------------------------------------------
-	//
-	//  Overridden methods: Event
-	//
-	//--------------------------------------------------------------------------
-
-	/**
-	 *  @private
-	 */
-	override public function cloneEvent():IRoyaleEvent
-	{
-		return new ValidationResultEvent(type, bubbles, cancelable,
-										 field, results);
-	}
-}
-
-}
+////////////////////////////////////////////////////////////////////////////////
+//
+//  Licensed to the Apache Software Foundation (ASF) under one or more
+//  contributor license agreements.  See the NOTICE file distributed with
+//  this work for additional information regarding copyright ownership.
+//  The ASF licenses this file to You under the Apache License, Version 2.0
+//  (the "License"); you may not use this file except in compliance with
+//  the License.  You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+//  Unless required by applicable law or agreed to in writing, software
+//  distributed under the License is distributed on an "AS IS" BASIS,
+//  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//  See the License for the specific language governing permissions and
+//  limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+
+package mx.events
+{
+
+/* import flash.events.Event; */
+
+import org.apache.royale.events.Event;
+import org.apache.royale.events.IRoyaleEvent;
+/**
+ *  The ValidationResultEvent class represents the event object 
+ *  passed to the listener for the <code>valid</code> validator event
+ *  or the <code>invalid</code> validator event. 
+ *
+ *  @see mx.validators.Validator
+ *  @see mx.validators.ValidationResult
+ *  @see mx.validators.RegExpValidationResult
+ *  
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion Royale 0.9.3
+ *  @royalesuppresspublicvarwarning
+ */
+public class ValidationResultEvent extends Event
+{
+/*     include "../core/Version.as"; */
+
+	//--------------------------------------------------------------------------
+	//
+	//  Class constants
+	//
+	//--------------------------------------------------------------------------
+	
+	/**
+	 *  The <code>ValidationResultEvent.INVALID</code> constant defines the value of the 
+	 *  <code>type</code> property of the event object for an <code>invalid</code> event.
+	 *  The value of this constant is "invalid".
+	 *
+	 *  <p>The properties of the event object have the following values:</p>
+	 *  <table class="innertable">
+	 *     <tr><th>Property</th><th>Value</th></tr>
+     *     <tr><td><code>bubbles</code></td><td>false</td></tr>
+     *     <tr><td><code>cancelable</code></td><td>false</td></tr>
+     *     <tr><td><code>currentTarget</code></td><td>The Object that defines the 
+     *       event listener that handles the event. For example, if you use 
+     *       <code>myButton.addEventListener()</code> to register an event listener, 
+     *       myButton is the value of the <code>currentTarget</code>. </td></tr>
+     *     <tr><td><code>field</code></td><td>The name of the field that failed validation.</td></tr>
+     *     <tr><td><code>message</code></td><td>A single string that contains 
+     *       every error message from all of the ValidationResult objects in the results Array.</td></tr>
+     *     <tr><td><code>results</code></td><td>An array of ValidationResult objects, 
+     *       one per validated field.</td></tr>
+     *     <tr><td><code>target</code></td><td>The Object that dispatched the event; 
+     *       it is not always the Object listening for the event. 
+     *       Use the <code>currentTarget</code> property to always access the 
+     *       Object listening for the event.</td></tr>
+	 *  </table>
+	 *
+     *  @eventType invalid 
+	 *  
+	 *  @langversion 3.0
+	 *  @playerversion Flash 9
+	 *  @playerversion AIR 1.1
+	 *  @productversion Royale 0.9.3
+	 */
+	public static const INVALID:String = "invalid";
+
+	/**
+	 *  The <code>ValidationResultEvent.VALID</code> constant defines the value of the 
+	 *  <code>type</code> property of the event object for a <code>valid</code>event.
+	 *  The value of this constant is "valid".
+	 *
+	 *  <p>The properties of the event object have the following values:</p>
+	 *  <table class="innertable">
+	 *     <tr><th>Property</th><th>Value</th></tr>
+     *     <tr><td><code>bubbles</code></td><td>false</td></tr>
+     *     <tr><td><code>cancelable</code></td><td>false</td></tr>
+     *     <tr><td><code>currentTarget</code></td><td>The Object that defines the 
+     *       event listener that handles the event. For example, if you use 
+     *       <code>myButton.addEventListener()</code> to register an event listener, 
+     *       myButton is the value of the <code>currentTarget</code>. </td></tr>
+     *     <tr><td><code>field</code></td><td>An empty String.</td></tr>
+     *     <tr><td><code>message</code></td><td>An empty String.</td></tr>
+     *     <tr><td><code>results</code></td><td>An empty Array.</td></tr>
+     *     <tr><td><code>target</code></td><td>The Object that dispatched the event; 
+     *       it is not always the Object listening for the event. 
+     *       Use the <code>currentTarget</code> property to always access the 
+     *       Object listening for the event.</td></tr>
+	 *  </table>
+	 *
+     *  @eventType valid 
+	 *  
+	 *  @langversion 3.0
+	 *  @playerversion Flash 9
+	 *  @playerversion AIR 1.1
+	 *  @productversion Royale 0.9.3
+	 */
+	public static const VALID:String = "valid";
+
+	//--------------------------------------------------------------------------
+	//
+	//  Constructor
+	//
+	//--------------------------------------------------------------------------
+
+	/**
+	 *  Constructor.
+	 *
+	 *  @param type The event type; indicates the action that caused the event.
+	 *
+	 *  @param bubbles Specifies whether the event can bubble up the 
+	 *  display list hierarchy.
+	 *
+	 *  @param cancelable Specifies whether the behavior associated with the event can be prevented.
+	 *
+	 *  @param field The name of the field that failed validation and triggered the event.
+	 *
+	 *  @param results An array of ValidationResult objects, one per validated field. 
+	 *  
+	 *  @langversion 3.0
+	 *  @playerversion Flash 9
+	 *  @playerversion AIR 1.1
+	 *  @productversion Royale 0.9.3
+	 */
+    public function ValidationResultEvent(type:String, bubbles:Boolean = false,
+										  cancelable:Boolean = false,
+										  field:String = null,
+										  results:Array = null)
+    {
+        super(type, bubbles, cancelable);
+
+        this.field = field;
+        this.results = results;
+    }
+
+	//--------------------------------------------------------------------------
+	//
+	//  Properties
+	//
+	//--------------------------------------------------------------------------
+
+	//----------------------------------
+    //  field
+    //----------------------------------
+
+	/**
+	 *  The name of the field that failed validation and triggered the event.
+	 *  
+	 *  @langversion 3.0
+	 *  @playerversion Flash 9
+	 *  @playerversion AIR 1.1
+	 *  @productversion Royale 0.9.3
+	 */
+    public var field:String;
+	
+	//----------------------------------
+    //  message
+    //----------------------------------
+
+	/**
+	 *  A single string that contains every error message from all
+	 *  of the ValidationResult objects in the results Array.
+	 *  
+	 *  @langversion 3.0
+	 *  @playerversion Flash 9
+	 *  @playerversion AIR 1.1
+	 *  @productversion Royale 0.9.3
+	 */
+    public function get message():String
+    {
+        var msg:String = "";
+		var n:int;
+		
+		if (results)
+			n = results.length;
+		
+		for (var i:int = 0; i < n; ++i)
+        {
+			if (results[i].isError)
+			{
+	            msg += msg == "" ? "" : "\n";
+				msg += results[i].errorMessage;
+			}
+        }
+        
+		return msg;
+    }
+
+	//----------------------------------
+    //  results
+    //----------------------------------
+
+	/**
+	 *  An array of ValidationResult objects, one per validated field. 
+	 *
+	 *  @see mx.validators.ValidationResult
+	 *  
+	 *  @langversion 3.0
+	 *  @playerversion Flash 9
+	 *  @playerversion AIR 1.1
+	 *  @productversion Royale 0.9.3
+	 */
+    public var results:Array;
+	
+	//--------------------------------------------------------------------------
+	//
+	//  Overridden methods: Event
+	//
+	//--------------------------------------------------------------------------
+
+	/**
+	 *  @private
+	 */
+	override public function cloneEvent():IRoyaleEvent
+	{
+		return new ValidationResultEvent(type, bubbles, cancelable,
+										 field, results);
+	}
+}
+
+}
diff --git a/frameworks/projects/MXRoyale/src/main/royale/mx/external/ExternalInterface.as b/frameworks/projects/MXRoyaleBase/src/main/royale/mx/external/ExternalInterface.as
similarity index 100%
rename from frameworks/projects/MXRoyale/src/main/royale/mx/external/ExternalInterface.as
rename to frameworks/projects/MXRoyaleBase/src/main/royale/mx/external/ExternalInterface.as
diff --git a/frameworks/projects/MXRoyale/src/main/royale/mx/formatters/CurrencyFormatter.as b/frameworks/projects/MXRoyaleBase/src/main/royale/mx/formatters/CurrencyFormatter.as
similarity index 100%
rename from frameworks/projects/MXRoyale/src/main/royale/mx/formatters/CurrencyFormatter.as
rename to frameworks/projects/MXRoyaleBase/src/main/royale/mx/formatters/CurrencyFormatter.as
diff --git a/frameworks/projects/MXRoyale/src/main/royale/mx/formatters/DateBase.as b/frameworks/projects/MXRoyaleBase/src/main/royale/mx/formatters/DateBase.as
similarity index 100%
rename from frameworks/projects/MXRoyale/src/main/royale/mx/formatters/DateBase.as
rename to frameworks/projects/MXRoyaleBase/src/main/royale/mx/formatters/DateBase.as
diff --git a/frameworks/projects/MXRoyale/src/main/royale/mx/formatters/DateFormatter.as b/frameworks/projects/MXRoyaleBase/src/main/royale/mx/formatters/DateFormatter.as
similarity index 100%
rename from frameworks/projects/MXRoyale/src/main/royale/mx/formatters/DateFormatter.as
rename to frameworks/projects/MXRoyaleBase/src/main/royale/mx/formatters/DateFormatter.as
diff --git a/frameworks/projects/MXRoyale/src/main/royale/mx/formatters/Formatter.as b/frameworks/projects/MXRoyaleBase/src/main/royale/mx/formatters/Formatter.as
similarity index 96%
rename from frameworks/projects/MXRoyale/src/main/royale/mx/formatters/Formatter.as
rename to frameworks/projects/MXRoyaleBase/src/main/royale/mx/formatters/Formatter.as
index fb56221..7077925 100644
--- a/frameworks/projects/MXRoyale/src/main/royale/mx/formatters/Formatter.as
+++ b/frameworks/projects/MXRoyaleBase/src/main/royale/mx/formatters/Formatter.as
@@ -1,403 +1,403 @@
-////////////////////////////////////////////////////////////////////////////////
-//
-//  Licensed to the Apache Software Foundation (ASF) under one or more
-//  contributor license agreements.  See the NOTICE file distributed with
-//  this work for additional information regarding copyright ownership.
-//  The ASF licenses this file to You under the Apache License, Version 2.0
-//  (the "License"); you may not use this file except in compliance with
-//  the License.  You may obtain a copy of the License at
-//
-//      http://www.apache.org/licenses/LICENSE-2.0
-//
-//  Unless required by applicable law or agreed to in writing, software
-//  distributed under the License is distributed on an "AS IS" BASIS,
-//  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-//  See the License for the specific language governing permissions and
-//  limitations under the License.
-//
-////////////////////////////////////////////////////////////////////////////////
-
-package mx.formatters
-{
-
-import mx.formatters.IFormatter;
-import mx.core.mx_internal;
-//import mx.managers.ISystemManager;
-//import mx.managers.SystemManager;
-//import mx.resources.IResourceManager;
-//import mx.resources.ResourceManager;
-
-use namespace mx_internal;
-
-// [ResourceBundle("formatters")]
-
-/**
- *  The Formatter class is the base class for all data formatters.
- *  Any subclass of Formatter must override the <code>format()</code> method.
- *
- *  @mxml
- *
- *  <p>The Formatter class defines the following tag attributes,
- *  which all of its subclasses inherit:</p>
- *  
- *  <pre>
- *  &lt;mx:<i>tagname</i>
- *    <b>Properties</b>
- *    error=""
- *  /&gt;
- *  </pre>
- *  
- *  @includeExample examples/SimpleFormatterExample.mxml
- *  
- *  @langversion 3.0
- *  @playerversion Flash 9
- *  @playerversion AIR 1.1
- *  @productversion Flex 3
- */
-public class Formatter implements IFormatter 
-{
-    //include "../core/Version.as";
-
-	//--------------------------------------------------------------------------
-	//
-	//  Class variables
-	//
-	//--------------------------------------------------------------------------
-
-	/**
-	 *  @private
-	 */
-	//private static var initialized:Boolean = false;
-
-	/**
-	 *  @private
-	 *  Storage for the resourceManager getter.
-	 *  This gets initialized on first access,
-	 *  not at static initialization time, in order to ensure
-	 *  that the Singleton registry has already been initialized.
-	 */
-	//private static var _static_resourceManager:IResourceManager;
-	
-	/**
-	 *  @private
-     *  A reference to the object which manages
-     *  all of the application's localized resources.
-     *  This is a singleton instance which implements
-     *  the IResourceManager interface.
-	 */
-	/* private static function get static_resourceManager():IResourceManager
-	{
-		 if (!_static_resourceManager)
-			_static_resourceManager = ResourceManager.getInstance(); 
-
-		return _static_resourceManager; 
-	} */
-	
-	//--------------------------------------------------------------------------
-	//
-	//  Class properties
-	//
-	//--------------------------------------------------------------------------
-		
-	//----------------------------------
-	//  defaultInvalidFormatError
-	//----------------------------------
-
-    /**
-	 *  @private
-	 *  Storage for the defaultInvalidFormatError property.
-	 */
-	private static var _defaultInvalidFormatError:String
-	
-    /**
-	 *  @private
-	 */
-	private static var defaultInvalidFormatErrorOverride:String
-
-	/**
-	 *  Error message for an invalid format string specified to the formatter.
-	 *  The localeChain property of the ResourceManager is used to resolve
-	 *  the default error message. If it is unable to find a value, it will
-	 *  return <code>null</code>. This can happen if none of the locales
-	 *  specified in the localeChain are compiled into the application.
-	 * 
-	 *  @default "Invalid format"
-	 *
-	 *  @langversion 3.0
-	 *  @playerversion Flash 9
-	 *  @playerversion AIR 1.1
-	 *  @productversion Flex 3
-	 */
-	public static function get defaultInvalidFormatError():String
-	{
-		// initialize();
-
-		return _defaultInvalidFormatError; 
-	}
-
-	/**
-	 *  @private
-	 */
-	public static function set defaultInvalidFormatError(value:String):void
-	{
-		defaultInvalidFormatErrorOverride = value;
-		
-		 _defaultInvalidFormatError = 
-			value != null ?
-			value : "Invalid format";
-			// static_resourceManager.getString(
-			// 	"formatters", "defaultInvalidFormatError"); 
-	}
-
-	//----------------------------------
-	//  defaultInvalidValueError
-	//----------------------------------
-
-    /**
-	 *  @private
-	 *  Storage for the defaultInvalidValueError property.
-	 */
-	private static var _defaultInvalidValueError:String
-	
-    /**
-	 *  @private
-	 */
-	private static var defaultInvalidValueErrorOverride:String
-
-	/**
-	 *  Error messages for an invalid value specified to the formatter. The
-	 *  localeChain property of the ResourceManager is used to resolve the
-	 *  default error message. If it is unable to find a value, it will return
-	 *  <code>null</code>. This can happen if none of the locales specified in
-	 *  the localeChain are compiled into the application.
-	 * 
-	 *  @default "Invalid value"
-	 *  
-	 *  @langversion 3.0
-	 *  @playerversion Flash 9
-	 *  @playerversion AIR 1.1
-	 *  @productversion Flex 3
-	 */
-	public static function get defaultInvalidValueError():String
-	{
-		// initialize();
-
-		return _defaultInvalidValueError; 
-	}
-
-	/**
-	 *  @private
-	 */
-	public static function set defaultInvalidValueError(value:String):void
-	{
-		defaultInvalidValueErrorOverride = value;
-
-		 _defaultInvalidValueError =
-			value != null ?
-			value : "Invalid value";
-			// static_resourceManager.getString(
-			// 	"formatters", "defaultInvalidValueError"); 
-	}
-	
-	//--------------------------------------------------------------------------
-	//
-	//  Class methods
-	//
-	//--------------------------------------------------------------------------
-
-    /**
-	 *  @private    
-     */
-	/* private static function initialize():void
-	{
-		 if (!initialized)
-		{ */ 
-			// Register as a weak listener for "change" events
-			// from ResourceManager.
-			/* static_resourceManager.addEventListener(
-				Event.CHANGE, static_resourceManager_changeHandler,
-				false, 0, true);
-
-			static_resourcesChanged();
-
-			initialized = true;
-		} 
-	} */
-
-    /**
-	 *  @private    
-     */
-	/* private static function static_resourcesChanged():void
-	{
-		 defaultInvalidFormatError = defaultInvalidFormatErrorOverride;
-		defaultInvalidValueError = defaultInvalidValueErrorOverride; 
-	} */
-
-	//--------------------------------------------------------------------------
-	//
-	//  Class event handlers
-	//
-	//--------------------------------------------------------------------------
-
-	/**
-	 *  @private
-	 */
-	/* private static function static_resourceManager_changeHandler(
-								event:Event):void
-	{
-		static_resourcesChanged();
-	} */
-
-	//--------------------------------------------------------------------------
-	//
-	//  Constructor
-	//
-	//--------------------------------------------------------------------------
-
-	/**
-	 *  Constructor.
-	 *  
-	 *  @langversion 3.0
-	 *  @playerversion Flash 9
-	 *  @playerversion AIR 1.1
-	 *  @productversion Flex 3
-	 */
-	public function Formatter()
-	{
-		super();
-
-		// Register as a weak listener for "change" events from ResourceManager.
-		// If Formatters registered as a strong listener,
-		// they wouldn't get garbage collected.
-		/* resourceManager.addEventListener(
-			Event.CHANGE, resourceManager_changeHandler, false, 0, true);
-
-		resourcesChanged(); */
-	}
-
-	//--------------------------------------------------------------------------
-	//
-	//  Properties
-	//
-	//--------------------------------------------------------------------------
-
-	//----------------------------------
-	//  error
-	//----------------------------------
-
-   // [Inspectable(category="General", defaultValue="null")]
-
-	/**
-	 *  Description saved by the formatter when an error occurs.
-	 *  For the possible values of this property,
-	 *  see the description of each formatter.
-	 *  <p>Subclasses must set this value
-	 *  in the <code>format()</code> method.</p>
-	 *  
-	 *  @langversion 3.0
-	 *  @playerversion Flash 9
-	 *  @playerversion AIR 1.1
-	 *  @productversion Flex 3
-     * 
-     *  @royalesuppresspublicvarwarning
-	 */
-	public var error:String;
-
-    //----------------------------------
-    //  resourceManager
-    //----------------------------------
-    
-    /**
-	 *  @private
-	 *  Storage for the resourceManager property.
-	 */
-	//private var _resourceManager:IResourceManager = ResourceManager.getInstance();
-    
-	/**
-	 *  @private
-	 *  This metadata suppresses a trace() in PropertyWatcher:
-	 *  "warning: unable to bind to property 'resourceManager' ..."
-	 */
-	//[Bindable("unused")]
-	
-	/**
-	 *  @copy mx.core.UIComponent#resourceManager
-	 *  
-	 *  @langversion 3.0
-	 *  @playerversion Flash 9
-	 *  @playerversion AIR 1.1
-	 *  @productversion Flex 3
-	 */
-	/* protected function get resourceManager():IResourceManager
-    {
-    	return _resourceManager;
-    }
-     */
-	//--------------------------------------------------------------------------
-	//
-	//  Methods
-	//
-	//--------------------------------------------------------------------------
-
-	/**
-	 *  This method is called when a Formatter is constructed,
-	 *  and again whenever the ResourceManager dispatches
-	 *  a <code>"change"</code> Event to indicate
-	 *  that the localized resources have changed in some way.
-	 * 
-	 *  <p>This event will be dispatched when you set the ResourceManager's
-	 *  <code>localeChain</code> property, when a resource module
-	 *  has finished loading, and when you call the ResourceManager's
-	 *  <code>update()</code> method.</p>
-	 *
-	 *  <p>Subclasses should override this method and, after calling
-	 *  <code>super.resourcesChanged()</code>, do whatever is appropriate
-	 *  in response to having new resource values.</p>
-	 *  
-	 *  @langversion 3.0
-	 *  @playerversion Flash 9
-	 *  @playerversion AIR 1.1
-	 *  @productversion Flex 3
-	 */
-	/* protected function resourcesChanged():void
-	{
-	} */
-
-	/**
-	 *  Formats a value and returns a String
-	 *  containing the new, formatted, value.
-	 *  All subclasses must override this method to implement the formatter.
-	 *
-	 *  @param value Value to be formatted.
-	 *
-	 *  @return The formatted string.
-	 *  
-	 *  @langversion 3.0
-	 *  @playerversion Flash 9
-	 *  @playerversion AIR 1.1
-	 *  @productversion Flex 3
-	 */
-	public function format(value:Object):String
-	{
-		/* error = "This format function is abstract. " +
-			    "Subclasses must override it."; */
-
-	    return "";
-	}
-
-	//--------------------------------------------------------------------------
-	//
-	//  Event handlers
-	//
-	//--------------------------------------------------------------------------
-
-	/**
-	 *  @private
-	 */
-	/* private function resourceManager_changeHandler(event:Event):void
-	{
-		resourcesChanged();
-	} */
-}
-
-}
+////////////////////////////////////////////////////////////////////////////////
+//
+//  Licensed to the Apache Software Foundation (ASF) under one or more
+//  contributor license agreements.  See the NOTICE file distributed with
+//  this work for additional information regarding copyright ownership.
+//  The ASF licenses this file to You under the Apache License, Version 2.0
+//  (the "License"); you may not use this file except in compliance with
+//  the License.  You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+//  Unless required by applicable law or agreed to in writing, software
+//  distributed under the License is distributed on an "AS IS" BASIS,
+//  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//  See the License for the specific language governing permissions and
+//  limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+
+package mx.formatters
+{
+
+import mx.formatters.IFormatter;
+import mx.core.mx_internal;
+//import mx.managers.ISystemManager;
+//import mx.managers.SystemManager;
+//import mx.resources.IResourceManager;
+//import mx.resources.ResourceManager;
+
+use namespace mx_internal;
+
+// [ResourceBundle("formatters")]
+
+/**
+ *  The Formatter class is the base class for all data formatters.
+ *  Any subclass of Formatter must override the <code>format()</code> method.
+ *
+ *  @mxml
+ *
+ *  <p>The Formatter class defines the following tag attributes,
+ *  which all of its subclasses inherit:</p>
+ *  
+ *  <pre>
+ *  &lt;mx:<i>tagname</i>
+ *    <b>Properties</b>
+ *    error=""
+ *  /&gt;
+ *  </pre>
+ *  
+ *  @includeExample examples/SimpleFormatterExample.mxml
+ *  
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion Flex 3
+ */
+public class Formatter implements IFormatter 
+{
+    //include "../core/Version.as";
+
+	//--------------------------------------------------------------------------
+	//
+	//  Class variables
+	//
+	//--------------------------------------------------------------------------
+
+	/**
+	 *  @private
+	 */
+	//private static var initialized:Boolean = false;
+
+	/**
+	 *  @private
+	 *  Storage for the resourceManager getter.
+	 *  This gets initialized on first access,
+	 *  not at static initialization time, in order to ensure
+	 *  that the Singleton registry has already been initialized.
+	 */
+	//private static var _static_resourceManager:IResourceManager;
+	
+	/**
+	 *  @private
+     *  A reference to the object which manages
+     *  all of the application's localized resources.
+     *  This is a singleton instance which implements
+     *  the IResourceManager interface.
+	 */
+	/* private static function get static_resourceManager():IResourceManager
+	{
+		 if (!_static_resourceManager)
+			_static_resourceManager = ResourceManager.getInstance(); 
+
+		return _static_resourceManager; 
+	} */
+	
+	//--------------------------------------------------------------------------
+	//
+	//  Class properties
+	//
+	//--------------------------------------------------------------------------
+		
+	//----------------------------------
+	//  defaultInvalidFormatError
+	//----------------------------------
+
+    /**
+	 *  @private
+	 *  Storage for the defaultInvalidFormatError property.
+	 */
+	private static var _defaultInvalidFormatError:String
+	
+    /**
+	 *  @private
+	 */
+	private static var defaultInvalidFormatErrorOverride:String
+
+	/**
+	 *  Error message for an invalid format string specified to the formatter.
+	 *  The localeChain property of the ResourceManager is used to resolve
+	 *  the default error message. If it is unable to find a value, it will
+	 *  return <code>null</code>. This can happen if none of the locales
+	 *  specified in the localeChain are compiled into the application.
+	 * 
+	 *  @default "Invalid format"
+	 *
+	 *  @langversion 3.0
+	 *  @playerversion Flash 9
+	 *  @playerversion AIR 1.1
+	 *  @productversion Flex 3
+	 */
+	public static function get defaultInvalidFormatError():String
+	{
+		// initialize();
+
+		return _defaultInvalidFormatError; 
+	}
+
+	/**
+	 *  @private
+	 */
+	public static function set defaultInvalidFormatError(value:String):void
+	{
+		defaultInvalidFormatErrorOverride = value;
+		
+		 _defaultInvalidFormatError = 
+			value != null ?
+			value : "Invalid format";
+			// static_resourceManager.getString(
+			// 	"formatters", "defaultInvalidFormatError"); 
+	}
+
+	//----------------------------------
+	//  defaultInvalidValueError
+	//----------------------------------
+
+    /**
+	 *  @private
+	 *  Storage for the defaultInvalidValueError property.
+	 */
+	private static var _defaultInvalidValueError:String
+	
+    /**
+	 *  @private
+	 */
+	private static var defaultInvalidValueErrorOverride:String
+
+	/**
+	 *  Error messages for an invalid value specified to the formatter. The
+	 *  localeChain property of the ResourceManager is used to resolve the
+	 *  default error message. If it is unable to find a value, it will return
+	 *  <code>null</code>. This can happen if none of the locales specified in
+	 *  the localeChain are compiled into the application.
+	 * 
+	 *  @default "Invalid value"
+	 *  
+	 *  @langversion 3.0
+	 *  @playerversion Flash 9
+	 *  @playerversion AIR 1.1
+	 *  @productversion Flex 3
+	 */
+	public static function get defaultInvalidValueError():String
+	{
+		// initialize();
+
+		return _defaultInvalidValueError; 
+	}
+
+	/**
+	 *  @private
+	 */
+	public static function set defaultInvalidValueError(value:String):void
+	{
+		defaultInvalidValueErrorOverride = value;
+
+		 _defaultInvalidValueError =
+			value != null ?
+			value : "Invalid value";
+			// static_resourceManager.getString(
+			// 	"formatters", "defaultInvalidValueError"); 
+	}
+	
+	//--------------------------------------------------------------------------
+	//
+	//  Class methods
+	//
+	//--------------------------------------------------------------------------
+
+    /**
+	 *  @private    
+     */
+	/* private static function initialize():void
+	{
+		 if (!initialized)
+		{ */ 
+			// Register as a weak listener for "change" events
+			// from ResourceManager.
+			/* static_resourceManager.addEventListener(
+				Event.CHANGE, static_resourceManager_changeHandler,
+				false, 0, true);
+
+			static_resourcesChanged();
+
+			initialized = true;
+		} 
+	} */
+
+    /**
+	 *  @private    
+     */
+	/* private static function static_resourcesChanged():void
+	{
+		 defaultInvalidFormatError = defaultInvalidFormatErrorOverride;
+		defaultInvalidValueError = defaultInvalidValueErrorOverride; 
+	} */
+
+	//--------------------------------------------------------------------------
+	//
+	//  Class event handlers
+	//
+	//--------------------------------------------------------------------------
+
+	/**
+	 *  @private
+	 */
+	/* private static function static_resourceManager_changeHandler(
+								event:Event):void
+	{
+		static_resourcesChanged();
+	} */
+
+	//--------------------------------------------------------------------------
+	//
+	//  Constructor
+	//
+	//--------------------------------------------------------------------------
+
+	/**
+	 *  Constructor.
+	 *  
+	 *  @langversion 3.0
+	 *  @playerversion Flash 9
+	 *  @playerversion AIR 1.1
+	 *  @productversion Flex 3
+	 */
+	public function Formatter()
+	{
+		super();
+
+		// Register as a weak listener for "change" events from ResourceManager.
+		// If Formatters registered as a strong listener,
+		// they wouldn't get garbage collected.
+		/* resourceManager.addEventListener(
+			Event.CHANGE, resourceManager_changeHandler, false, 0, true);
+
+		resourcesChanged(); */
+	}
+
+	//--------------------------------------------------------------------------
+	//
+	//  Properties
+	//
+	//--------------------------------------------------------------------------
+
+	//----------------------------------
+	//  error
+	//----------------------------------
+
+   // [Inspectable(category="General", defaultValue="null")]
+
+	/**
+	 *  Description saved by the formatter when an error occurs.
+	 *  For the possible values of this property,
+	 *  see the description of each formatter.
+	 *  <p>Subclasses must set this value
+	 *  in the <code>format()</code> method.</p>
+	 *  
+	 *  @langversion 3.0
+	 *  @playerversion Flash 9
+	 *  @playerversion AIR 1.1
+	 *  @productversion Flex 3
+     * 
+     *  @royalesuppresspublicvarwarning
+	 */
+	public var error:String;
+
+    //----------------------------------
+    //  resourceManager
+    //----------------------------------
+    
+    /**
+	 *  @private
+	 *  Storage for the resourceManager property.
+	 */
+	//private var _resourceManager:IResourceManager = ResourceManager.getInstance();
+    
+	/**
+	 *  @private
+	 *  This metadata suppresses a trace() in PropertyWatcher:
+	 *  "warning: unable to bind to property 'resourceManager' ..."
+	 */
+	//[Bindable("unused")]
+	
+	/**
+	 *  @copy mx.core.UIComponent#resourceManager
+	 *  
+	 *  @langversion 3.0
+	 *  @playerversion Flash 9
+	 *  @playerversion AIR 1.1
+	 *  @productversion Flex 3
+	 */
+	/* protected function get resourceManager():IResourceManager
+    {
+    	return _resourceManager;
+    }
+     */
+	//--------------------------------------------------------------------------
+	//
+	//  Methods
+	//
+	//--------------------------------------------------------------------------
+
+	/**
+	 *  This method is called when a Formatter is constructed,
+	 *  and again whenever the ResourceManager dispatches
+	 *  a <code>"change"</code> Event to indicate
+	 *  that the localized resources have changed in some way.
+	 * 
+	 *  <p>This event will be dispatched when you set the ResourceManager's
+	 *  <code>localeChain</code> property, when a resource module
+	 *  has finished loading, and when you call the ResourceManager's
+	 *  <code>update()</code> method.</p>
+	 *
+	 *  <p>Subclasses should override this method and, after calling
+	 *  <code>super.resourcesChanged()</code>, do whatever is appropriate
+	 *  in response to having new resource values.</p>
+	 *  
+	 *  @langversion 3.0
+	 *  @playerversion Flash 9
+	 *  @playerversion AIR 1.1
+	 *  @productversion Flex 3
+	 */
+	/* protected function resourcesChanged():void
+	{
+	} */
+
+	/**
+	 *  Formats a value and returns a String
+	 *  containing the new, formatted, value.
+	 *  All subclasses must override this method to implement the formatter.
+	 *
+	 *  @param value Value to be formatted.
+	 *
+	 *  @return The formatted string.
+	 *  
+	 *  @langversion 3.0
+	 *  @playerversion Flash 9
+	 *  @playerversion AIR 1.1
+	 *  @productversion Flex 3
+	 */
+	public function format(value:Object):String
+	{
+		/* error = "This format function is abstract. " +
+			    "Subclasses must override it."; */
+
+	    return "";
+	}
+
+	//--------------------------------------------------------------------------
+	//
+	//  Event handlers
+	//
+	//--------------------------------------------------------------------------
+
+	/**
+	 *  @private
+	 */
+	/* private function resourceManager_changeHandler(event:Event):void
+	{
+		resourcesChanged();
+	} */
+}
+
+}
diff --git a/frameworks/projects/MXRoyale/src/main/royale/mx/formatters/IFormatter.as b/frameworks/projects/MXRoyaleBase/src/main/royale/mx/formatters/IFormatter.as
similarity index 97%
rename from frameworks/projects/MXRoyale/src/main/royale/mx/formatters/IFormatter.as
rename to frameworks/projects/MXRoyaleBase/src/main/royale/mx/formatters/IFormatter.as
index b4a864d..ef0d05d 100644
--- a/frameworks/projects/MXRoyale/src/main/royale/mx/formatters/IFormatter.as
+++ b/frameworks/projects/MXRoyaleBase/src/main/royale/mx/formatters/IFormatter.as
@@ -1,58 +1,58 @@
-////////////////////////////////////////////////////////////////////////////////
-//
-//  Licensed to the Apache Software Foundation (ASF) under one or more
-//  contributor license agreements.  See the NOTICE file distributed with
-//  this work for additional information regarding copyright ownership.
-//  The ASF licenses this file to You under the Apache License, Version 2.0
-//  (the "License"); you may not use this file except in compliance with
-//  the License.  You may obtain a copy of the License at
-//
-//      http://www.apache.org/licenses/LICENSE-2.0
-//
-//  Unless required by applicable law or agreed to in writing, software
-//  distributed under the License is distributed on an "AS IS" BASIS,
-//  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-//  See the License for the specific language governing permissions and
-//  limitations under the License.
-//
-////////////////////////////////////////////////////////////////////////////////
-
-package mx.formatters
-{
-
-/**
- *  This interface specifies the method that a formatter object must implement
- *  to allow it to be used as the formatter property for UI controls such as
- *  the <code>AdvancedDataGridColumn</code>.
- *
- *  @see mx.controls.advancedDataGridClasses#formatter
- *
- *  @langversion 3.0
- *  @playerversion Flash 10.1
- *  @playerversion AIR 2.5
- *  @productversion Flex 4.5
-*/
-public interface IFormatter
-{
-    //--------------------------------------------------------------------------
-    //
-    //  Methods
-    //
-    //--------------------------------------------------------------------------
-
-    /**
-     *  Formats a value and returns a <code>String</code>
-     *  containing the new formatted value.
-     *
-     *  @param value Value to be formatted.
-     *
-     *  @return The formatted string.
-     *
-     *  @langversion 3.0
-     *  @playerversion Flash 10.1
-     *  @playerversion AIR 2.5
-     *  @productversion Flex 4.5
-     */
-    function format(value:Object):String;
-}
-}
+////////////////////////////////////////////////////////////////////////////////
+//
+//  Licensed to the Apache Software Foundation (ASF) under one or more
+//  contributor license agreements.  See the NOTICE file distributed with
+//  this work for additional information regarding copyright ownership.
+//  The ASF licenses this file to You under the Apache License, Version 2.0
+//  (the "License"); you may not use this file except in compliance with
+//  the License.  You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+//  Unless required by applicable law or agreed to in writing, software
+//  distributed under the License is distributed on an "AS IS" BASIS,
+//  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//  See the License for the specific language governing permissions and
+//  limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+
+package mx.formatters
+{
+
+/**
+ *  This interface specifies the method that a formatter object must implement
+ *  to allow it to be used as the formatter property for UI controls such as
+ *  the <code>AdvancedDataGridColumn</code>.
+ *
+ *  @see mx.controls.advancedDataGridClasses#formatter
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 10.1
+ *  @playerversion AIR 2.5
+ *  @productversion Flex 4.5
+*/
+public interface IFormatter
+{
+    //--------------------------------------------------------------------------
+    //
+    //  Methods
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  Formats a value and returns a <code>String</code>
+     *  containing the new formatted value.
+     *
+     *  @param value Value to be formatted.
+     *
+     *  @return The formatted string.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10.1
+     *  @playerversion AIR 2.5
+     *  @productversion Flex 4.5
+     */
+    function format(value:Object):String;
+}
+}
diff --git a/frameworks/projects/MXRoyale/src/main/royale/mx/formatters/NumberBase.as b/frameworks/projects/MXRoyaleBase/src/main/royale/mx/formatters/NumberBase.as
similarity index 100%
rename from frameworks/projects/MXRoyale/src/main/royale/mx/formatters/NumberBase.as
rename to frameworks/projects/MXRoyaleBase/src/main/royale/mx/formatters/NumberBase.as
diff --git a/frameworks/projects/MXRoyale/src/main/royale/mx/formatters/NumberBaseRoundType.as b/frameworks/projects/MXRoyaleBase/src/main/royale/mx/formatters/NumberBaseRoundType.as
similarity index 100%
rename from frameworks/projects/MXRoyale/src/main/royale/mx/formatters/NumberBaseRoundType.as
rename to frameworks/projects/MXRoyaleBase/src/main/royale/mx/formatters/NumberBaseRoundType.as
diff --git a/frameworks/projects/MXRoyale/src/main/royale/mx/formatters/NumberFormatter.as b/frameworks/projects/MXRoyaleBase/src/main/royale/mx/formatters/NumberFormatter.as
similarity index 97%
rename from frameworks/projects/MXRoyale/src/main/royale/mx/formatters/NumberFormatter.as
rename to frameworks/projects/MXRoyaleBase/src/main/royale/mx/formatters/NumberFormatter.as
index 9f5bf23..2eda7c6 100644
--- a/frameworks/projects/MXRoyale/src/main/royale/mx/formatters/NumberFormatter.as
+++ b/frameworks/projects/MXRoyaleBase/src/main/royale/mx/formatters/NumberFormatter.as
@@ -1,643 +1,643 @@
-////////////////////////////////////////////////////////////////////////////////
-//
-//  Licensed to the Apache Software Foundation (ASF) under one or more
-//  contributor license agreements.  See the NOTICE file distributed with
-//  this work for additional information regarding copyright ownership.
-//  The ASF licenses this file to You under the Apache License, Version 2.0
-//  (the "License"); you may not use this file except in compliance with
-//  the License.  You may obtain a copy of the License at
-//
-//      http://www.apache.org/licenses/LICENSE-2.0
-//
-//  Unless required by applicable law or agreed to in writing, software
-//  distributed under the License is distributed on an "AS IS" BASIS,
-//  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-//  See the License for the specific language governing permissions and
-//  limitations under the License.
-//
-////////////////////////////////////////////////////////////////////////////////
-
-package mx.formatters
-{
-
-    //import mx.managers.ISystemManager;
-    //import mx.managers.SystemManager;
-
-    //[ResourceBundle("formatters")]
-    //[ResourceBundle("SharedResources")]
-
-    [Alternative(replacement="spark.formatters.NumberFormatter", since="4.5")]
-    /**
-     *  The NumberFormatter class formats a valid number
-     *  by adjusting the decimal rounding and precision,
-     *  the thousands separator, and the negative sign.
-     *
-     *  <p>If you use both the <code>rounding</code> and <code>precision</code>
-     *  properties, rounding is applied first, and then you set the decimal length
-     *  by using the specified <code>precision</code> value.
-     *  This lets you round a number and still have a trailing decimal;
-     *  for example, 303.99 = 304.00.</p>
-     *
-     *  <p>If an error occurs, an empty String is returned and a String
-     *  describing  the error is saved to the <code>error</code> property.
-     *  The <code>error</code>  property can have one of the following values:</p>
-     *
-     *  <ul>
-     *    <li><code>"Invalid value"</code> means an invalid numeric value is passed to
-     *    the <code>format()</code> method. The value should be a valid number in the
-     *    form of a Number or a String.</li>
-     *    <li><code>"Invalid format"</code> means one of the parameters
-     *    contain an unusable setting.</li>
-     *  </ul>
-     *
-     *  @mxml
-     *
-     *  <p>The <code>&lt;mx:NumberFormatter&gt;</code> tag
-     *  inherits all of the tag attributes of its superclass,
-     *  and adds the following tag attributes:</p>
-     *
-     *  <pre>
-     *  &lt;mx:NumberFormatter
-     *    decimalSeparatorFrom="."
-     *    decimalSeparatorTo="."
-     *    precision="-1"
-     *    rounding="none|up|down|nearest"
-     *    thousandsSeparatorFrom=","
-     *    thousandsSeparatorTo=","
-     *    useNegativeSign="true|false"
-     *    useThousandsSeparator="true|false"/>
-     *  </pre>
-     *
-     *  @includeExample examples/NumberFormatterExample.mxml
-     *
-     *  @see mx.formatters.NumberBase
-     *  @see mx.formatters.NumberBaseRoundType
-     *
-     *  @langversion 3.0
-     *  @playerversion Flash 9
-     *  @playerversion AIR 1.1
-     *  @productversion Royale 0.9.3
-     */
-    public class NumberFormatter extends Formatter
-    {
-       // include "../core/Version.as";
-
-        //--------------------------------------------------------------------------
-        //
-        //  Constructor
-        //
-        //--------------------------------------------------------------------------
-
-        /**
-         *  Constructor.
-         *
-         *  @langversion 3.0
-         *  @playerversion Flash 9
-         *  @playerversion AIR 1.1
-         *  @productversion Royale 0.9.3
-         */
-        public function NumberFormatter()
-        {
-            super();
-        }
-
-        //--------------------------------------------------------------------------
-        //
-        //  Properties
-        //
-        //--------------------------------------------------------------------------
-
-        //----------------------------------
-        //  decimalSeparatorFrom
-        //----------------------------------
-
-        /**
-         *  @private
-         *  Storage for the decimalSeparatorFrom property.
-         */
-        private var _decimalSeparatorFrom:String = ".";
-
-        /**
-         *  @private
-         */
-        //private var decimalSeparatorFromOverride:String;
-
-        [Inspectable(category="General", defaultValue=".")]
-
-        /**
-         *  Decimal separator character to use
-         *  when parsing an input String.
-         *
-         *  <p>When setting this property, ensure that the value of the
-         *  <code>thousandsSeparatorFrom</code> property does not equal this property.
-         *  Otherwise, an error occurs when formatting the value.</p>
-         *
-         *  @default "."
-         *
-         *  @see #format()
-         *
-         *  @langversion 3.0
-         *  @playerversion Flash 9
-         *  @playerversion AIR 1.1
-         *  @productversion Royale 0.9.3
-         */
-        public function get decimalSeparatorFrom():String
-        {
-            return _decimalSeparatorFrom;
-        }
-
-        /**
-         *  @private
-         */
-        public function set decimalSeparatorFrom(value:String):void
-        {
-            //decimalSeparatorFromOverride = value;
-
-            _decimalSeparatorFrom = value != null ?
-                                    value : value
-                                   /* resourceManager.getString(
-                                        "SharedResources", "decimalSeparatorFrom") */;
-        }
-
-        //----------------------------------
-        //  decimalSeparatorTo
-        //----------------------------------
-
-        /**
-         *  @private
-         *  Storage for the decimalSeparatorTo property.
-         */
-        private var _decimalSeparatorTo:String = ".";
-
-        /**
-         *  @private
-         */
-        //private var decimalSeparatorToOverride:String;
-
-        [Inspectable(category="General", defaultValue=".")]
-
-        /**
-         *  Decimal separator character to use
-         *  when outputting formatted decimal numbers.
-         *
-         *  <p>When setting this property, ensure that the value of the
-         *  <code>thousandsSeparatorTo</code> property does not equal this property.
-         *  Otherwise, an error occurs when formatting the value.</p>
-         *
-         *  @default "."
-         *
-         *  @see #format()
-         *
-         *  @langversion 3.0
-         *  @playerversion Flash 9
-         *  @playerversion AIR 1.1
-         *  @productversion Royale 0.9.3
-         */
-        public function get decimalSeparatorTo():String
-        {
-            return _decimalSeparatorTo;
-        }
-
-        /**
-         *  @private
-         */
-        public function set decimalSeparatorTo(value:String):void
-        {
-            //decimalSeparatorToOverride = value;
-
-            _decimalSeparatorTo = value != null ?
-                                  value : value
-                                 /* resourceManager.getString(
-                                    "SharedResources", "decimalSeparatorTo") */ ;
-        }
-
-        //----------------------------------
-        //  precision
-        //----------------------------------
-
-        /**
-         *  @private
-         *  Storage for the precision property.
-         */
-        private var _precision:Object = -1;
-
-        /**
-         *  @private
-         */
-        //private var precisionOverride:Object;
-
-        [Inspectable(category="General", defaultValue="-1")]
-
-        /**
-         *  Number of decimal places to include in the output String.
-         *  You can disable precision by setting it to <code>-1</code>.
-         *  A value of <code>-1</code> means do not change the precision. For example,
-         *  if the input value is 1.453 and <code>rounding</code>
-         *  is set to <code>NumberBaseRoundType.NONE</code>, return a value of 1.453.
-         *  If <code>precision</code> is <code>-1</code> and you have set some form of
-         *  rounding, return a value based on that rounding type.
-         *
-         *  @default -1
-         *
-         *  @langversion 3.0
-         *  @playerversion Flash 9
-         *  @playerversion AIR 1.1
-         *  @productversion Royale 0.9.3
-         */
-        public function get precision():Object
-        {
-            return _precision;
-        }
-
-        /**
-         *  @private
-         */
-        public function set precision(value:Object):void
-        {
-            //precisionOverride = value;
-
-            _precision = value != null ?
-                         int(value) : int(value)
-                        /* resourceManager.getInt(
-                             "formatters", "numberFormatterPrecision") */ ;
-        }
-
-        //----------------------------------
-        //  rounding
-        //----------------------------------
-
-        /**
-         *  @private
-         *  Storage for the rounding property.
-         */
-        private var _rounding:String = "none";
-
-        /**
-         *  @private
-         */
-        //private var roundingOverride:String;
-
-        [Inspectable(category="General", enumeration="none,up,down,nearest", defaultValue="none")]
-            // !!@ Should enumeration include null?
-
-        /**
-         *  Specifies how to round the number.
-         *
-         *  <p>In ActionScript, you can use the following constants to set this property:
-         *  <code>NumberBaseRoundType.NONE</code>, <code>NumberBaseRoundType.UP</code>,
-         *  <code>NumberBaseRoundType.DOWN</code>, or <code>NumberBaseRoundType.NEAREST</code>.
-         *  Valid MXML values are "down", "nearest", "up", and "none".</p>
-         *
-         *  @default NumberBaseRoundType.NONE
-         *
-         *  @see mx.formatters.NumberBaseRoundType
-         *
-         *  @langversion 3.0
-         *  @playerversion Flash 9
-         *  @playerversion AIR 1.1
-         *  @productversion Royale 0.9.3
-         */
-        public function get rounding():String
-        {
-            return _rounding;
-        }
-
-        /**
-         *  @private
-         */
-        public function set rounding(value:String):void
-        {
-            //roundingOverride = value;
-
-            _rounding = value != null ?
-                        value : value
-                       /* resourceManager.getString(
-                            "formatters", "rounding") */ ;
-        }
-
-        //----------------------------------
-        //  thousandsSeparatorFrom
-        //----------------------------------
-
-        /**
-         *  @private
-         *  Storage for the thousandsSeparatorFrom property.
-         */
-        private var _thousandsSeparatorFrom:String = ",";
-
-        /**
-         *  @private
-         */
-        //private var thousandsSeparatorFromOverride:String;
-
-        [Inspectable(category="General", defaultValue=",")]
-
-        /**
-         *  Character to use as the thousands separator
-         *  in the input String.
-         *
-         *  <p>When setting this property, ensure that the value of the
-         *  <code>decimalSeparatorFrom</code> property does not equal this property.
-         *  Otherwise, an error occurs when formatting the value.</p>
-         *
-         *  @default ","
-         *
-         *  @see #format()
-         *
-         *  @langversion 3.0
-         *  @playerversion Flash 9
-         *  @playerversion AIR 1.1
-         *  @productversion Royale 0.9.3
-         */
-        public function get thousandsSeparatorFrom():String
-        {
-            return _thousandsSeparatorFrom;
-        }
-
-        /**
-         *  @private
-         */
-        public function set thousandsSeparatorFrom(value:String):void
-        {
-            //thousandsSeparatorFromOverride = value;
-
-            _thousandsSeparatorFrom = value != null ?
-                                      value : value
-                                     /* resourceManager.getString(
-                                          "SharedResources",
-                                          "thousandsSeparatorFrom"); */
-        }
-
-        //----------------------------------
-        //  thousandsSeparatorTo
-        //----------------------------------
-
-        /**
-         *  @private
-         *  Storage for the thousandsSeparatorTo property.
-         */
-        private var _thousandsSeparatorTo:String = ",";
-
-        /**
-         *  @private
-         */
-        //private var thousandsSeparatorToOverride:String;
-
-        [Inspectable(category="General", defaultValue=",")]
-
-        /**
-         *  Character to use as the thousands separator
-         *  in the output String.
-         *
-         *  <p>When setting this property, ensure that the value of the
-         *  <code>decimalSeparatorTo</code> property does not equal this property.
-         *  Otherwise, an error occurs when formatting the value.</p>
-         *
-         *  @default ","
-         *
-         *  @see #format()
-         *
-         *  @langversion 3.0
-         *  @playerversion Flash 9
-         *  @playerversion AIR 1.1
-         *  @productversion Royale 0.9.3
-         */
-        public function get thousandsSeparatorTo():String
-        {
-            return _thousandsSeparatorTo;
-        }
-
-        /**
-         *  @private
-         */
-        public function set thousandsSeparatorTo(value:String):void
-        {
-            //thousandsSeparatorToOverride = value;
-
-            _thousandsSeparatorTo = value != null ?
-                                    value : value
-                                  /*  resourceManager.getString(
-                                        "SharedResources",
-                                        "thousandsSeparatorTo") */ ;
-        }
-
-        //----------------------------------
-        //  useNegativeSign
-        //----------------------------------
-
-        /**
-         *  @private
-         *  Storage for the useNegativeSign property.
-         */
-        private var _useNegativeSign:Object = true;
-
-        /**
-         *  @private
-         */
-        //private var useNegativeSignOverride:Object;
-
-        [Inspectable(category="General", defaultValue="true")]
-
-        /**
-         *  If <code>true</code>, format a negative number
-         *  by preceding it with a minus "-" sign.
-         *  If <code>false</code>, format the number
-         *  surrounded by parentheses, for example (400).
-         *
-         *  @default true
-         *
-         *  @langversion 3.0
-         *  @playerversion Flash 9
-         *  @playerversion AIR 1.1
-         *  @productversion Royale 0.9.3
-         */
-        public function get useNegativeSign():Object
-        {
-            return _useNegativeSign;
-        }
-
-        /**
-         *  @private
-         */
-        public function set useNegativeSign(value:Object):void
-        {
-            //useNegativeSignOverride = value;
-
-            _useNegativeSign = value != null ?
-                               Boolean(value) : Boolean(value)
-                            /*   resourceManager.getBoolean(
-                                   "formatters", "useNegativeSignInNumber") */ ;
-        }
-
-        //----------------------------------
-        //  useThousandsSeparator
-        //----------------------------------
-
-        /**
-         *  @private
-         *  Storage for the useThousandsSeparator property.
-         */
-        private var _useThousandsSeparator:Object = true;
-
-        /**
-         *  @private
-         */
-        //private var useThousandsSeparatorOverride:Object;
-
-        [Inspectable(category="General", defaultValue="true")]
-
-        /**
-         *  If <code>true</code>, split the number into thousands increments
-         *  by using a separator character.
-         *
-         *  @default true
-         *
-         *  @langversion 3.0
-         *  @playerversion Flash 9
-         *  @playerversion AIR 1.1
-         *  @productversion Royale 0.9.3
-         */
-        public function get useThousandsSeparator():Object
-        {
-            return _useThousandsSeparator;
-        }
-
-        /**
-         *  @private
-         */
-        public function set useThousandsSeparator(value:Object):void
-        {
-            //useThousandsSeparatorOverride = value;
-
-            _useThousandsSeparator = value != null ?
-                                     Boolean(value) : Boolean(value)
-                                 /*     resourceManager.getBoolean(
-                                         "formatters", "useThousandsSeparator") */ ;
-        }
-
-        //--------------------------------------------------------------------------
-        //
-        //  Overridden methods
-        //
-        //--------------------------------------------------------------------------
-        /**
-         *  Formats the number as a String.
-         *  If <code>value</code> cannot be formatted, return an empty String
-         *  and write a description of the error to the <code>error</code> property.
-         *
-         *  @param value Value to format.
-         *
-         *  @return Formatted String. Empty if an error occurs.
-         *
-         *  @langversion 3.0
-         *  @playerversion Flash 9
-         *  @playerversion AIR 1.1
-         *  @productversion Royale 0.9.3
-         */
-        override public function format(value:Object):String
-        {
-            // Reset any previous errors.
-            //if (error)
-            //    error = null;
-
-            if (useThousandsSeparator &&
-                ((decimalSeparatorFrom == thousandsSeparatorFrom) ||
-                 (decimalSeparatorTo == thousandsSeparatorTo)))
-            {
-                //error = defaultInvalidFormatError;
-                return "";
-            }
-
-            if (decimalSeparatorTo == "" || !isNaN(Number(decimalSeparatorTo)))
-            {
-                //error = defaultInvalidFormatError;
-                return "";
-            }
-
-            var dataFormatter:NumberBase = new NumberBase(decimalSeparatorFrom,
-                                                          thousandsSeparatorFrom,
-                                                          decimalSeparatorTo,
-                                                          thousandsSeparatorTo);
-
-            // -- value --
-
-            if (value is String)
-                value = dataFormatter.parseNumberString(String(value));
-
-            if (value === null || isNaN(Number(value)))
-            {
-                //error = defaultInvalidValueError;
-                return "";
-            }
-
-            // -- format --
-
-            var isNegative:Boolean = (Number(value) < 0);
-
-            var numStr:String = value.toString();
-
-            numStr = numStr.toLowerCase();
-            var e:int = numStr.indexOf("e");
-            if (e != -1)  //deal with exponents
-                numStr = dataFormatter.expandExponents(numStr);
-
-            var numArrTemp:Array = numStr.split(".");
-            var numFraction:int = numArrTemp[1] ? String(numArrTemp[1]).length : 0;
-
-            if (precision < numFraction)
-            {
-                if (rounding != NumberBaseRoundType.NONE)
-                {
-                    numStr = dataFormatter.formatRoundingWithPrecision(
-                        numStr, rounding, int(precision));
-                }
-            }
-
-            var numValue:Number = Number(numStr);
-            if (Math.abs(numValue) >= 1)
-            {
-                numArrTemp = numStr.split(".");
-                var front:String = useThousandsSeparator ?
-                                   dataFormatter.formatThousands(String(numArrTemp[0])) :
-                                   String(numArrTemp[0]);
-                if (numArrTemp[1] != null && numArrTemp[1] != "")
-                    numStr = front + decimalSeparatorTo + numArrTemp[1];
-                else
-                    numStr = front;
-            }
-            else if (Math.abs(numValue) > 0)
-            {
-                // Check if the string is in scientific notation
-                numStr = numStr.toLowerCase();
-                if (numStr.indexOf("e") != -1)
-                {
-                    var temp:Number = Math.abs(numValue) + 1;
-                    numStr = temp.toString();
-                }
-                numStr = decimalSeparatorTo +
-                         numStr.substring(numStr.indexOf(".") + 1);
-            }
-
-            numStr = dataFormatter.formatPrecision(numStr, int(precision));
-
-            // If our value is 0, then don't show -0
-            if (Number(numStr) == 0)
-            {
-                isNegative = false;
-            }
-
-            if (isNegative)
-                numStr = dataFormatter.formatNegative(numStr, useNegativeSign);
-
-            if (!dataFormatter.isValid)
-            {
-                error = defaultInvalidFormatError;
-                return "";
-            }
-
-            return numStr;
-        }
-
-    }
-
-}
+////////////////////////////////////////////////////////////////////////////////
+//
+//  Licensed to the Apache Software Foundation (ASF) under one or more
+//  contributor license agreements.  See the NOTICE file distributed with
+//  this work for additional information regarding copyright ownership.
+//  The ASF licenses this file to You under the Apache License, Version 2.0
+//  (the "License"); you may not use this file except in compliance with
+//  the License.  You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+//  Unless required by applicable law or agreed to in writing, software
+//  distributed under the License is distributed on an "AS IS" BASIS,
+//  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//  See the License for the specific language governing permissions and
+//  limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+
+package mx.formatters
+{
+
+    //import mx.managers.ISystemManager;
+    //import mx.managers.SystemManager;
+
+    //[ResourceBundle("formatters")]
+    //[ResourceBundle("SharedResources")]
+
+    [Alternative(replacement="spark.formatters.NumberFormatter", since="4.5")]
+    /**
+     *  The NumberFormatter class formats a valid number
+     *  by adjusting the decimal rounding and precision,
+     *  the thousands separator, and the negative sign.
+     *
+     *  <p>If you use both the <code>rounding</code> and <code>precision</code>
+     *  properties, rounding is applied first, and then you set the decimal length
+     *  by using the specified <code>precision</code> value.
+     *  This lets you round a number and still have a trailing decimal;
+     *  for example, 303.99 = 304.00.</p>
+     *
+     *  <p>If an error occurs, an empty String is returned and a String
+     *  describing  the error is saved to the <code>error</code> property.
+     *  The <code>error</code>  property can have one of the following values:</p>
+     *
+     *  <ul>
+     *    <li><code>"Invalid value"</code> means an invalid numeric value is passed to
+     *    the <code>format()</code> method. The value should be a valid number in the
+     *    form of a Number or a String.</li>
+     *    <li><code>"Invalid format"</code> means one of the parameters
+     *    contain an unusable setting.</li>
+     *  </ul>
+     *
+     *  @mxml
+     *
+     *  <p>The <code>&lt;mx:NumberFormatter&gt;</code> tag
+     *  inherits all of the tag attributes of its superclass,
+     *  and adds the following tag attributes:</p>
+     *
+     *  <pre>
+     *  &lt;mx:NumberFormatter
+     *    decimalSeparatorFrom="."
+     *    decimalSeparatorTo="."
+     *    precision="-1"
+     *    rounding="none|up|down|nearest"
+     *    thousandsSeparatorFrom=","
+     *    thousandsSeparatorTo=","
+     *    useNegativeSign="true|false"
+     *    useThousandsSeparator="true|false"/>
+     *  </pre>
+     *
+     *  @includeExample examples/NumberFormatterExample.mxml
+     *
+     *  @see mx.formatters.NumberBase
+     *  @see mx.formatters.NumberBaseRoundType
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Royale 0.9.3
+     */
+    public class NumberFormatter extends Formatter
+    {
+       // include "../core/Version.as";
+
+        //--------------------------------------------------------------------------
+        //
+        //  Constructor
+        //
+        //--------------------------------------------------------------------------
+
+        /**
+         *  Constructor.
+         *
+         *  @langversion 3.0
+         *  @playerversion Flash 9
+         *  @playerversion AIR 1.1
+         *  @productversion Royale 0.9.3
+         */
+        public function NumberFormatter()
+        {
+            super();
+        }
+
+        //--------------------------------------------------------------------------
+        //
+        //  Properties
+        //
+        //--------------------------------------------------------------------------
+
+        //----------------------------------
+        //  decimalSeparatorFrom
+        //----------------------------------
+
+        /**
+         *  @private
+         *  Storage for the decimalSeparatorFrom property.
+         */
+        private var _decimalSeparatorFrom:String = ".";
+
+        /**
+         *  @private
+         */
+        //private var decimalSeparatorFromOverride:String;
+
+        [Inspectable(category="General", defaultValue=".")]
+
+        /**
+         *  Decimal separator character to use
+         *  when parsing an input String.
+         *
+         *  <p>When setting this property, ensure that the value of the
+         *  <code>thousandsSeparatorFrom</code> property does not equal this property.
+         *  Otherwise, an error occurs when formatting the value.</p>
+         *
+         *  @default "."
+         *
+         *  @see #format()
+         *
+         *  @langversion 3.0
+         *  @playerversion Flash 9
+         *  @playerversion AIR 1.1
+         *  @productversion Royale 0.9.3
+         */
+        public function get decimalSeparatorFrom():String
+        {
+            return _decimalSeparatorFrom;
+        }
+
+        /**
+         *  @private
+         */
+        public function set decimalSeparatorFrom(value:String):void
+        {
+            //decimalSeparatorFromOverride = value;
+
+            _decimalSeparatorFrom = value != null ?
+                                    value : value
+                                   /* resourceManager.getString(
+                                        "SharedResources", "decimalSeparatorFrom") */;
+        }
+
+        //----------------------------------
+        //  decimalSeparatorTo
+        //----------------------------------
+
+        /**
+         *  @private
+         *  Storage for the decimalSeparatorTo property.
+         */
+        private var _decimalSeparatorTo:String = ".";
+
+        /**
+         *  @private
+         */
+        //private var decimalSeparatorToOverride:String;
+
+        [Inspectable(category="General", defaultValue=".")]
+
+        /**
+         *  Decimal separator character to use
+         *  when outputting formatted decimal numbers.
+         *
+         *  <p>When setting this property, ensure that the value of the
+         *  <code>thousandsSeparatorTo</code> property does not equal this property.
+         *  Otherwise, an error occurs when formatting the value.</p>
+         *
+         *  @default "."
+         *
+         *  @see #format()
+         *
+         *  @langversion 3.0
+         *  @playerversion Flash 9
+         *  @playerversion AIR 1.1
+         *  @productversion Royale 0.9.3
+         */
+        public function get decimalSeparatorTo():String
+        {
+            return _decimalSeparatorTo;
+        }
+
+        /**
+         *  @private
+         */
+        public function set decimalSeparatorTo(value:String):void
+        {
+            //decimalSeparatorToOverride = value;
+
+            _decimalSeparatorTo = value != null ?
+                                  value : value
+                                 /* resourceManager.getString(
+                                    "SharedResources", "decimalSeparatorTo") */ ;
+        }
+
+        //----------------------------------
+        //  precision
+        //----------------------------------
+
+        /**
+         *  @private
+         *  Storage for the precision property.
+         */
+        private var _precision:Object = -1;
+
+        /**
+         *  @private
+         */
+        //private var precisionOverride:Object;
+
+        [Inspectable(category="General", defaultValue="-1")]
+
+        /**
+         *  Number of decimal places to include in the output String.
+         *  You can disable precision by setting it to <code>-1</code>.
+         *  A value of <code>-1</code> means do not change the precision. For example,
+         *  if the input value is 1.453 and <code>rounding</code>
+         *  is set to <code>NumberBaseRoundType.NONE</code>, return a value of 1.453.
+         *  If <code>precision</code> is <code>-1</code> and you have set some form of
+         *  rounding, return a value based on that rounding type.
+         *
+         *  @default -1
+         *
+         *  @langversion 3.0
+         *  @playerversion Flash 9
+         *  @playerversion AIR 1.1
+         *  @productversion Royale 0.9.3
+         */
+        public function get precision():Object
+        {
+            return _precision;
+        }
+
+        /**
+         *  @private
+         */
+        public function set precision(value:Object):void
+        {
+            //precisionOverride = value;
+
+            _precision = value != null ?
+                         int(value) : int(value)
+                        /* resourceManager.getInt(
+                             "formatters", "numberFormatterPrecision") */ ;
+        }
+
+        //----------------------------------
+        //  rounding
+        //----------------------------------
+
+        /**
+         *  @private
+         *  Storage for the rounding property.
+         */
+        private var _rounding:String = "none";
+
+        /**
+         *  @private
+         */
+        //private var roundingOverride:String;
+
+        [Inspectable(category="General", enumeration="none,up,down,nearest", defaultValue="none")]
+            // !!@ Should enumeration include null?
+
+        /**
+         *  Specifies how to round the number.
+         *
+         *  <p>In ActionScript, you can use the following constants to set this property:
+         *  <code>NumberBaseRoundType.NONE</code>, <code>NumberBaseRoundType.UP</code>,
+         *  <code>NumberBaseRoundType.DOWN</code>, or <code>NumberBaseRoundType.NEAREST</code>.
+         *  Valid MXML values are "down", "nearest", "up", and "none".</p>
+         *
+         *  @default NumberBaseRoundType.NONE
+         *
+         *  @see mx.formatters.NumberBaseRoundType
+         *
+         *  @langversion 3.0
+         *  @playerversion Flash 9
+         *  @playerversion AIR 1.1
+         *  @productversion Royale 0.9.3
+         */
+        public function get rounding():String
+        {
+            return _rounding;
+        }
+
+        /**
+         *  @private
+         */
+        public function set rounding(value:String):void
+        {
+            //roundingOverride = value;
+
+            _rounding = value != null ?
+                        value : value
+                       /* resourceManager.getString(
+                            "formatters", "rounding") */ ;
+        }
+
+        //----------------------------------
+        //  thousandsSeparatorFrom
+        //----------------------------------
+
+        /**
+         *  @private
+         *  Storage for the thousandsSeparatorFrom property.
+         */
+        private var _thousandsSeparatorFrom:String = ",";
+
+        /**
+         *  @private
+         */
+        //private var thousandsSeparatorFromOverride:String;
+
+        [Inspectable(category="General", defaultValue=",")]
+
+        /**
+         *  Character to use as the thousands separator
+         *  in the input String.
+         *
+         *  <p>When setting this property, ensure that the value of the
+         *  <code>decimalSeparatorFrom</code> property does not equal this property.
+         *  Otherwise, an error occurs when formatting the value.</p>
+         *
+         *  @default ","
+         *
+         *  @see #format()
+         *
+         *  @langversion 3.0
+         *  @playerversion Flash 9
+         *  @playerversion AIR 1.1
+         *  @productversion Royale 0.9.3
+         */
+        public function get thousandsSeparatorFrom():String
+        {
+            return _thousandsSeparatorFrom;
+        }
+
+        /**
+         *  @private
+         */
+        public function set thousandsSeparatorFrom(value:String):void
+        {
+            //thousandsSeparatorFromOverride = value;
+
+            _thousandsSeparatorFrom = value != null ?
+                                      value : value
+                                     /* resourceManager.getString(
+                                          "SharedResources",
+                                          "thousandsSeparatorFrom"); */
+        }
+
+        //----------------------------------
+        //  thousandsSeparatorTo
+        //----------------------------------
+
+        /**
+         *  @private
+         *  Storage for the thousandsSeparatorTo property.
+         */
+        private var _thousandsSeparatorTo:String = ",";
+
+        /**
+         *  @private
+         */
+        //private var thousandsSeparatorToOverride:String;
+
+        [Inspectable(category="General", defaultValue=",")]
+
+        /**
+         *  Character to use as the thousands separator
+         *  in the output String.
+         *
+         *  <p>When setting this property, ensure that the value of the
+         *  <code>decimalSeparatorTo</code> property does not equal this property.
+         *  Otherwise, an error occurs when formatting the value.</p>
+         *
+         *  @default ","
+         *
+         *  @see #format()
+         *
+         *  @langversion 3.0
+         *  @playerversion Flash 9
+         *  @playerversion AIR 1.1
+         *  @productversion Royale 0.9.3
+         */
+        public function get thousandsSeparatorTo():String
+        {
+            return _thousandsSeparatorTo;
+        }
+
+        /**
+         *  @private
+         */
+        public function set thousandsSeparatorTo(value:String):void
+        {
+            //thousandsSeparatorToOverride = value;
+
+            _thousandsSeparatorTo = value != null ?
+                                    value : value
+                                  /*  resourceManager.getString(
+                                        "SharedResources",
+                                        "thousandsSeparatorTo") */ ;
+        }
+
+        //----------------------------------
+        //  useNegativeSign
+        //----------------------------------
+
+        /**
+         *  @private
+         *  Storage for the useNegativeSign property.
+         */
+        private var _useNegativeSign:Object = true;
+
+        /**
+         *  @private
+         */
+        //private var useNegativeSignOverride:Object;
+
+        [Inspectable(category="General", defaultValue="true")]
+
+        /**
+         *  If <code>true</code>, format a negative number
+         *  by preceding it with a minus "-" sign.
+         *  If <code>false</code>, format the number
+         *  surrounded by parentheses, for example (400).
+         *
+         *  @default true
+         *
+         *  @langversion 3.0
+         *  @playerversion Flash 9
+         *  @playerversion AIR 1.1
+         *  @productversion Royale 0.9.3
+         */
+        public function get useNegativeSign():Object
+        {
+            return _useNegativeSign;
+        }
+
+        /**
+         *  @private
+         */
+        public function set useNegativeSign(value:Object):void
+        {
+            //useNegativeSignOverride = value;
+
+            _useNegativeSign = value != null ?
+                               Boolean(value) : Boolean(value)
+                            /*   resourceManager.getBoolean(
+                                   "formatters", "useNegativeSignInNumber") */ ;
+        }
+
+        //----------------------------------
+        //  useThousandsSeparator
+        //----------------------------------
+
+        /**
+         *  @private
+         *  Storage for the useThousandsSeparator property.
+         */
+        private var _useThousandsSeparator:Object = true;
+
+        /**
+         *  @private
+         */
+        //private var useThousandsSeparatorOverride:Object;
+
+        [Inspectable(category="General", defaultValue="true")]
+
+        /**
+         *  If <code>true</code>, split the number into thousands increments
+         *  by using a separator character.
+         *
+         *  @default true
+         *
+         *  @langversion 3.0
+         *  @playerversion Flash 9
+         *  @playerversion AIR 1.1
+         *  @productversion Royale 0.9.3
+         */
+        public function get useThousandsSeparator():Object
+        {
+            return _useThousandsSeparator;
+        }
+
+        /**
+         *  @private
+         */
+        public function set useThousandsSeparator(value:Object):void
+        {
+            //useThousandsSeparatorOverride = value;
+
+            _useThousandsSeparator = value != null ?
+                                     Boolean(value) : Boolean(value)
+                                 /*     resourceManager.getBoolean(
+                                         "formatters", "useThousandsSeparator") */ ;
+        }
+
+        //--------------------------------------------------------------------------
+        //
+        //  Overridden methods
+        //
+        //--------------------------------------------------------------------------
+        /**
+         *  Formats the number as a String.
+         *  If <code>value</code> cannot be formatted, return an empty String
+         *  and write a description of the error to the <code>error</code> property.
+         *
+         *  @param value Value to format.
+         *
+         *  @return Formatted String. Empty if an error occurs.
+         *
+         *  @langversion 3.0
+         *  @playerversion Flash 9
+         *  @playerversion AIR 1.1
+         *  @productversion Royale 0.9.3
+         */
+        override public function format(value:Object):String
+        {
+            // Reset any previous errors.
+            //if (error)
+            //    error = null;
+
+            if (useThousandsSeparator &&
+                ((decimalSeparatorFrom == thousandsSeparatorFrom) ||
+                 (decimalSeparatorTo == thousandsSeparatorTo)))
+            {
+                //error = defaultInvalidFormatError;
+                return "";
+            }
+
+            if (decimalSeparatorTo == "" || !isNaN(Number(decimalSeparatorTo)))
+            {
+                //error = defaultInvalidFormatError;
+                return "";
+            }
+
+            var dataFormatter:NumberBase = new NumberBase(decimalSeparatorFrom,
+                                                          thousandsSeparatorFrom,
+                                                          decimalSeparatorTo,
+                                                          thousandsSeparatorTo);
+
+            // -- value --
+
+            if (value is String)
+                value = dataFormatter.parseNumberString(String(value));
+
+            if (value === null || isNaN(Number(value)))
+            {
+                //error = defaultInvalidValueError;
+                return "";
+            }
+
+            // -- format --
+
+            var isNegative:Boolean = (Number(value) < 0);
+
+            var numStr:String = value.toString();
+
+            numStr = numStr.toLowerCase();
+            var e:int = numStr.indexOf("e");
+            if (e != -1)  //deal with exponents
+                numStr = dataFormatter.expandExponents(numStr);
+
+            var numArrTemp:Array = numStr.split(".");
+            var numFraction:int = numArrTemp[1] ? String(numArrTemp[1]).length : 0;
+
+            if (precision < numFraction)
+            {
+                if (rounding != NumberBaseRoundType.NONE)
+                {
+                    numStr = dataFormatter.formatRoundingWithPrecision(
+                        numStr, rounding, int(precision));
+                }
+            }
+
+            var numValue:Number = Number(numStr);
+            if (Math.abs(numValue) >= 1)
+            {
+                numArrTemp = numStr.split(".");
+                var front:String = useThousandsSeparator ?
+                                   dataFormatter.formatThousands(String(numArrTemp[0])) :
+                                   String(numArrTemp[0]);
+                if (numArrTemp[1] != null && numArrTemp[1] != "")
+                    numStr = front + decimalSeparatorTo + numArrTemp[1];
+                else
+                    numStr = front;
+            }
+            else if (Math.abs(numValue) > 0)
+            {
+                // Check if the string is in scientific notation
+                numStr = numStr.toLowerCase();
+                if (numStr.indexOf("e") != -1)
+                {
+                    var temp:Number = Math.abs(numValue) + 1;
+                    numStr = temp.toString();
+                }
+                numStr = decimalSeparatorTo +
+                         numStr.substring(numStr.indexOf(".") + 1);
+            }
+
+            numStr = dataFormatter.formatPrecision(numStr, int(precision));
+
+            // If our value is 0, then don't show -0
+            if (Number(numStr) == 0)
+            {
+                isNegative = false;
+            }
+
+            if (isNegative)
+                numStr = dataFormatter.formatNegative(numStr, useNegativeSign);
+
+            if (!dataFormatter.isValid)
+            {
+                error = defaultInvalidFormatError;
+                return "";
+            }
+
+            return numStr;
+        }
+
+    }
+
+}
diff --git a/frameworks/projects/MXRoyale/src/main/royale/mx/formatters/PhoneFormatter.as b/frameworks/projects/MXRoyaleBase/src/main/royale/mx/formatters/PhoneFormatter.as
similarity index 96%
rename from frameworks/projects/MXRoyale/src/main/royale/mx/formatters/PhoneFormatter.as
rename to frameworks/projects/MXRoyaleBase/src/main/royale/mx/formatters/PhoneFormatter.as
index 090c845..67c3c60 100644
--- a/frameworks/projects/MXRoyale/src/main/royale/mx/formatters/PhoneFormatter.as
+++ b/frameworks/projects/MXRoyaleBase/src/main/royale/mx/formatters/PhoneFormatter.as
@@ -1,401 +1,401 @@
-////////////////////////////////////////////////////////////////////////////////
-//
-//  Licensed to the Apache Software Foundation (ASF) under one or more
-//  contributor license agreements.  See the NOTICE file distributed with
-//  this work for additional information regarding copyright ownership.
-//  The ASF licenses this file to You under the Apache License, Version 2.0
-//  (the "License"); you may not use this file except in compliance with
-//  the License.  You may obtain a copy of the License at
-//
-//      http://www.apache.org/licenses/LICENSE-2.0
-//
-//  Unless required by applicable law or agreed to in writing, software
-//  distributed under the License is distributed on an "AS IS" BASIS,
-//  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-//  See the License for the specific language governing permissions and
-//  limitations under the License.
-//
-////////////////////////////////////////////////////////////////////////////////
-
-package mx.formatters
-{
-
-//import mx.managers.ISystemManager;
-//import mx.managers.SystemManager;
-
-//[ResourceBundle("formatters")]
-
-/**
- *  The PhoneFormatter class formats a valid number into a phone number format,
- *  including international configurations.
- *
- *  <p>A shortcut is provided for the United States seven-digit format.
- *  If the <code>areaCode</code> property contains a value
- *  and you use the seven-digit format string, (###-####),
- *  a seven-digit value to format automatically adds the area code
- *  to the returned String.
- *  The default format for the area code is (###). 
- *  You can change this using the <code>areaCodeFormat</code> property. 
- *  You can format the area code any way you want as long as it contains 
- *  three number placeholders.</p>
- *
- *  <p>If an error occurs, an empty String is returned and a String
- *  that describes the error is saved to the <code>error</code> property.
- *  The <code>error</code> property can have one of the following values:</p>
- *
- *  <ul>
- *    <li><code>"Invalid value"</code> means an invalid numeric value is passed 
- *    to the <code>format()</code> method. The value should be a valid number 
- *    in the form of a Number or a String, or the value contains a different 
- *    number of digits than what is specified in the format String.</li>
- *    <li> <code>"Invalid format"</code> means any of the characters in the 
- *    <code>formatString</code> property do not match the allowed characters 
- *    specified in the <code>validPatternChars</code> property, 
- *    or the <code>areaCodeFormat</code> property is specified but does not
- *    contain exactly three numeric placeholders.</li>
- *  </ul>
- *  
- *  @mxml
- *  
- *  <p>The <code>&lt;mx:PhoneFormatter&gt;</code> tag
- *  inherits all of the tag attributes of its superclass,
- *  and adds the following tag attributes:</p>
- *  
- *  <pre>
- *  &lt;mx:PhoneFormatter
- *    areaCode="-1"
- *    areaCodeFormat="(###)"
- *    formatString="(###) ###-####"
- *    validPatternChars="+()#-. "
- *  />
- *  </pre>
- *  
- *  @includeExample examples/PhoneFormatterExample.mxml
- *  
- *  @see mx.formatters.SwitchSymbolFormatter
- *  
- *  @langversion 3.0
- *  @playerversion Flash 9
- *  @playerversion AIR 1.1
- *  @productversion Flex 3
- */
-public class PhoneFormatter extends Formatter
-{
-    //include "../core/Version.as";
-    
-    //--------------------------------------------------------------------------
-    //
-    //  Constructor
-    //
-    //--------------------------------------------------------------------------
-
-    /**
-     *  Constructor.
-     *  
-     *  @langversion 3.0
-     *  @playerversion Flash 9
-     *  @playerversion AIR 1.1
-     *  @productversion Flex 3
-     */
-    public function PhoneFormatter()
-    {
-        super();
-    }
-
-    //--------------------------------------------------------------------------
-    //
-    //  Properties
-    //
-    //--------------------------------------------------------------------------
-
-    //----------------------------------
-    //  areaCode
-    //----------------------------------
-    
-    /**
-	 *  @private
-	 *  Storage for the areaCode property.
-	 */
-	//private var _areaCode:Object;
-	
-    /**
-	 *  @private
-	 */
-	//private var areaCodeOverride:Object;
-	
-   // [Inspectable(category="General", defaultValue="null")]
-
-    /**
-     *  Area code number added to a seven-digit United States
-     *  format phone number to form a 10-digit phone number.
-     *  A value of <code>-1</code> means do not  
-     *  prepend the area code.
-     *
-     *  @default -1  
-     *  
-     *  @langversion 3.0
-     *  @playerversion Flash 9
-     *  @playerversion AIR 1.1
-     *  @productversion Flex 3
-     */
-	/* public function get areaCode():Object
-	{
-		return _areaCode;
-	} */
-
-	/**
-	 *  @private
-	 */
-	/* public function set areaCode(value:Object):void
-	{
-		areaCodeOverride = value;
-
-		 _areaCode = value != null ?
-					int(value) :
-					resourceManager.getInt(
-						"formatters", "areaCode"); 
-	} */
-
-    //----------------------------------
-    //  areaCodeFormat
-    //----------------------------------
-
-    /**
-	 *  @private
-	 *  Storage for the areaCodeFormat property.
-	 */
-	//private var _areaCodeFormat:String;
-	
-    /**
-	 *  @private
-	 */
-	//private var areaCodeFormatOverride:String;
-	
-   // [Inspectable(category="General", defaultValue="null")]
-
-    /**
-     *  Default format for the area code when the <code>areacode</code>
-     *  property is rendered by a seven-digit format.
-     *
-     *  @default "(###) "
-     *  
-     *  @langversion 3.0
-     *  @playerversion Flash 9
-     *  @playerversion AIR 1.1
-     *  @productversion Flex 3
-     */
-	/* public function get areaCodeFormat():String
-	{
-		return _areaCodeFormat;
-	} */
-
-	/**
-	 *  @private
-	 */
-	/* public function set areaCodeFormat(value:String):void
-	{
-		areaCodeFormatOverride = value;
-
-		 _areaCodeFormat = value != null ?
-						  value :
-						  resourceManager.getString(
-						      "formatters", "areaCodeFormat"); 
-	} */
-
-    //----------------------------------
-    //  formatString
-    //----------------------------------
-
-    /**
-	 *  @private
-	 *  Storage for the formatString property.
-	 */
-	private var _formatString:String;
-	
-    /**
-	 *  @private
-	 */
-	//private var formatStringOverride:String;
-	
-    //[Inspectable(category="General", defaultValue="null")]
-    
-    /**
-     *  String that contains mask characters
-     *  that represent a specified phone number format.
-     *
-     *  @default "(###) ###-####"
-     *  
-     *  @langversion 3.0
-     *  @playerversion Flash 9
-     *  @playerversion AIR 1.1
-     *  @productversion Flex 3
-     */
-	public function get formatString():String
-	{
-		return _formatString;
-	}
-
-	/**
-	 *  @private
-	 */
-	public function set formatString(value:String):void
-	{
-		//formatStringOverride = value;
-
-		/* _formatString = value != null ?
-						value :
-						resourceManager.getString(
-							"formatters", "phoneNumberFormat"); */
-	}
-
-    //----------------------------------
-    //  validPatternChars
-    //----------------------------------
-
-    /**
-	 *  @private
-	 *  Storage for the validPatternChars property.
-	 */
-	//private var _validPatternChars:String;
-	
-    /**
-	 *  @private
-	 */
-	//private var validPatternCharsOverride:String;
-	
-    //[Inspectable(category="General", defaultValue="null")]
-
-    /**
-     *  List of valid characters that can be used
-     *  in the <code>formatString</code> property.
-     *  This property is used during validation
-     *  of the <code>formatString</code> property.
-     *
-     *  @default "+()#- ."
-     *  
-     *  @langversion 3.0
-     *  @playerversion Flash 9
-     *  @playerversion AIR 1.1
-     *  @productversion Flex 3
-     */
-	/* public function get validPatternChars():String
-	{
-		return _validPatternChars;
-	} */
-
-	/**
-	 *  @private
-	 */
-	/* public function set validPatternChars(value:String):void
-	{
-		validPatternCharsOverride = value;
-
-		_validPatternChars = value != null ?
-							 value :
-							 resourceManager.getString(
-							     "formatters", "validPatternChars"); 
-	} */
-
-    //--------------------------------------------------------------------------
-    //
-    //  Overridden methods
-    //
-    //--------------------------------------------------------------------------
-    
-    /**
-     *  @private    
-     */
-    /* override protected function resourcesChanged():void
-    {
-		super.resourcesChanged();
-
-        areaCode = areaCodeOverride;
-        areaCodeFormat = areaCodeFormatOverride;
-        formatString = formatStringOverride;
-        validPatternChars = validPatternCharsOverride;
-    } */
-
-    /**
-     *  Formats the String as a phone number.
-     *  If the value cannot be formatted, return an empty String 
-     *  and write a description of the error to the <code>error</code> property.
-     *
-     *  @param value Value to format.
-     *
-     *  @return Formatted String. Empty if an error occurs. A description 
-     *  of the error condition is written to the <code>error</code> property.
-     *  
-     *  @langversion 3.0
-     *  @playerversion Flash 9
-     *  @playerversion AIR 1.1
-     *  @productversion Flex 3
-     */
-    /* override public function format(value:Object):String
-    {
-        // Reset any previous errors.
-        if (error)
-            error = null;
-
-        // --value--
-
-        if (!value || String(value).length == 0 || isNaN(Number(value)))
-        {
-            error = defaultInvalidValueError;
-            return "";
-        }
-
-        // --length--
-
-        var fStrLen:int = 0;
-        var letter:String;
-        var n:int;
-        var i:int;
-        
-        n = formatString.length;
-        for (i = 0; i < n; i++)
-        {
-            letter = formatString.charAt(i);
-            if (letter == "#")
-            {
-                fStrLen++;
-            }
-            else if (validPatternChars.indexOf(letter) == -1)
-            {
-                error = defaultInvalidFormatError;
-                return "";
-            }
-        }
- */
-        /* if (String(value).length != fStrLen)
-        {
-            error = defaultInvalidValueError;
-            return "";
... 12502 lines suppressed ...