main system