decorator instead