add more codes for use cases