better documentation, better initialization