analysis functions added