restructured code
added embryo for more levels
Updated with author
fixed encoding bugg
Extracted two subclasses