Added defineProperty check/implementation. Is available (ie node.js) defineProperty is the correct way to add color properties so they aren't enumerable. Unintentional enumerable properties can cause global issues