Refactored Device to lower cross dependency