modelo com abstracoes