added self check