Adicionado singleton para factory, e organizado arquivos do strategy em outro pacote