a better approach?