update eggs API to create new instances and require that it was called, move options to instantiation, add basic tests