Started writing the SelectionLayer class as virtual