This files contain the work of lucif3r and also the changes I made to it.