weak coupling implementation