Refactor out attributes handling to a module. Make the gene execute in it's own context (with access to the parent)