excluding non necessary functions