First cave implementation. Needs more tuning.