added optional clear