My forth time attempting to refactor the code, bugs are giving me a hard time, though i do like concept in the code