padrão decorator
padrão strategy
tipo genérico pilha