inherits from Array && refactor && version under different namespace