this is a homework.