extracted apply from applicative
cosmetic changes