rework on struct block
working on struct block