finished refactoring and evio moved to its own package