draft: map functions and use their return type for injection
Merge remote-tracking branch 'origin/master'

Conflicts:
	inject.go
add dependency factories