adjust the structure
add handlers