Better encapsulation and improved example usage