further hardware support, buggy but it works