Will modify it more later tmr