based on mermaid