added key hold/release methods