add optional dependencies
add transform option