improve for dynamic fields