base decorator