Final version

woot woot (Still can be improved)