problem8: add type sig