add new data struct: list