initial codes, im still debugging :(