added abstracted log functions