* Add basic support of function * move debug function to test file * add a test who need to pass to end the implementation