cls -> self