one class for init
add states