UPDATE: Added encapsulation