added various functions