Function
Still need to implement the params type verification