improving structure and abstraction level