Updated/Modified to work past kernel>=3.10.x