some changes, but i dont sure thats is workable