need to create everything at start.
Most complicated parts (without the)