add function harware