COmplete APi without documentation and some testing code.