a lot of refactoring
Version 0.0.13