refactor define name and add some samples