changed handling of element and global styles, implemented extend StyleWith, setting style(dimension: val) now calls self.dimension