Improve requirements and add extras dependencies.
Improve extra dependency.
Remove recursive requirement.