functions fully created