fixed contextual implementation