implement mark method