Basic version without preview or persistence