added some interesting functions
merge