Refactor things I don't like

This pull request include a lof of improvements and interface changes. Sorry, but I really hate names like method_foo...