read through functional inheritance section, still need to add code examples