renamed functions to avoid conflicting names