More dynamics, less hardcoding