initial Function implementation