Nem acredito que eu consegui fazer isso, mas consegui, deixei alguns comentarios para facilitar, qualquer coisa me pergutem.