practice of Head First Desing Pattern