implemented dynamically add extensions to structure