Better structure. More comments