infrastructure class added