abstract chain link pattern