Spiral galaxy formation