initial outline, incomplete