refactor con interfaz que define manejar y printear tipos