Could be cleaner n some stuff need fixing n updated