software and hardware