refactor
exerciser 10 & 12; has not fix bug