Separate assignment operation
Add emplacement method
Add global functions generating Either