First pass at egg
TODO: Replacement and multi-sets