Update fix bug + re-structure