added geomtry functions