improved theme switch