implementação das funçoes principais