Scanner.dart is more friendly

Added documentation.
Lots of methods is now private.