edit with Marshall's suggestions