add: some improvement