add support for writable properties