complete forward decalaration and logging