more documentation + data encapsulation