changeable arguments
some usages about time function
struct for list