machine constructor added