contains some useful tools for coding