generic impl for coal