add constants and states
add method
add methods
implement methods
testAsist