TODO: fixed the bug