setup basic structure
add apply