Refactoring actor for better clarity

* Re-arranging BaseActor for better clarity
* Removing bang! methods
* Ensuring method instructions are at the same level of abstraction