final version with random things :v