refactoring into proper python package structure