added all the necessities