Hardware and software