added machine struct