additional functions
some changes
moar