Abstract out skate.init code to another function and use that internally. skate.init() now calls that and now allows any type of argument. It will normalise it and initialise whatever it finds if it can. This allows us to be flexibile with arguments while retaining performance by calling the internal function where we need it internally and not calling skate.init() ever internally.