Made more macro-based
Added Loggable type class