some functions added, not really needed