working on decorator