Mostly adding in mouse related abstractions