moved public/private methods into a concern in dm_core