Implement generic List properties

@jpsim 
Anything not explicitly designed to be inherited from should be final.