Homework work
not finished yet