Support extending an element with a class name
Support nested property definitions
Code cleanup, narrow extend condition
code cleanup