Updated
Restructure + add stream()