boilerplate haptic.c