ex5 fin refactor and reflect