First pass at device events