First pass at single-level crawler