keep structure consistent, also make executable