some initial function declarations