refacotr the Customer and CustomerTest