issue #2 and issue #3
add interfaces for user dict(not implemented yet)