add dependency inject project
add StructuralTyping