fix nested compose, add ability to override defineProperty
cleanup of compose
basic documentation for compose