Wrap most of the code into the create function in order to create private scoping for each instance