opaque
fix bugs