add version
add Preferences
update TODO