added GPIO framework