add docstrings
integrate flask-principal
add support for static roles