inheriting from hardware layer
some cleaning up