better structured + various improvement