finished ch21
finished ch21 silver challenge