tooooooooooooo lengthy .... sorry bro