refactor code to better idea
implement nmark method that I thought was there all along