three functions added
TODO dot