add dirbase func