I think this is working. please check, if not i'll send the codes, cant
commit correctly.