version method should be a self method