adjusted for dynamic attribute changes