add documentation system
some fixes