Achieving a good trade-off between complexity and enhancement in cross layer architectures