implement exists
implement map