extracted decorating functionality in wrappers so it can be reused