implement add Block