* second part of code (yeah know the comments are rubbish ;P)