add readonly mode so it can be themed independently. resolves #510