finish refactor to eruption, still need to decide on package name though