refactor some tuples, add list all feature