main funcs added