Refactored to use static positions instead of dynamic groups