better structure
Starting point