try better encapsulation