further modified chardev