Inserted everything to function that way we can have real internal methods and variables