added functionality
merge from ayana