WIP - 3.0 method signature

Harden method signatures for public methods, cleanup/simplify methods and correct doc blocks.

Quite a few times methods cast internally to array, while the method should only accept arrays in the first place (according to doc block).