minor refactor
minor refactor
add attr defaults