complte base functions