enhance new function Issue #12