Added a hell lot of code