main project framework