added lib core functions