fix: better ui; better filter type default value
add: shared lib