Added entry_point for calling from python (instead of cli). Styling changes (made many fileds and methods private/protected by convention)