add a level object to clean things up and make logging nicer