composition over inheritance, and more doc comments