structural changes for better build compatibility