adding new support functions