more generic index layout