functions and classes added