a better approach