final decorated version