Portado a C++, funciona raro