better documentation
make code more uniform