First draft
Example done
Semi-final form. Added pretty demo. Added enforced capacity