added hardware code