add new main functions