second commit -- improve the structur