split code to different files, updated interface
bump version