implement @handler decorator