reformat
cleanup
add logging
don't duplicate property please
add enum support