change obj to opt
add button and init