Code cleanup.
Prevent non-properties from being enumerated and allow extensions to module's public interface.
Add support for AMD environment.
Code cleanup.