add main skeleton
add state code