Rework this again.