adding hardware acceleration