Split Class with Trait for private functions

Signed-off-by: Fabien Crassat <fabien@crassat.com>