some modification to add more general description