Added comments and fixed bug where instance was created if none existed on method call