file stucture optimised a bit