update many things but still bugs to fix