allow direct invoking