some basic changes to char driver