compilation fixed
initial rework