refactor constructors to move logic to BaseTuml