more interface cleanup, dont use optional deps while this is not in core
-rw-r--r-- .gitignore
drwxr-xr-x lib
drwxr-xr-x t