basic key change functionality