separete hardware from core