added contains implementation