the first commit: add some extension for array