reworked structure for better setup