diff --git a/Assets/Resources/Prefabs/Facts/SimpleCircle.prefab b/Assets/Resources/Prefabs/Facts/SimpleCircle.prefab
new file mode 100644
index 0000000000000000000000000000000000000000..1fcbb8633b082ffdbca844bafbb9bec8d6bf79a2
--- /dev/null
+++ b/Assets/Resources/Prefabs/Facts/SimpleCircle.prefab
@@ -0,0 +1,489 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!1 &3319392661904935552
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 7541265271928914416}
+  - component: {fileID: 1312883106029576503}
+  - component: {fileID: 5284903402926663935}
+  - component: {fileID: 2574848627300415222}
+  - component: {fileID: 7280041197286401157}
+  m_Layer: 15
+  m_Name: Mesh Down
+  m_TagString: SnapZone
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!4 &7541265271928914416
+Transform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 3319392661904935552}
+  m_LocalRotation: {x: 0.7071068, y: 0, z: 0, w: 0.7071068}
+  m_LocalPosition: {x: 0, y: -0.01, z: 0}
+  m_LocalScale: {x: 1, y: 0.01, z: 1}
+  m_ConstrainProportionsScale: 0
+  m_Children:
+  - {fileID: 6787775389045427190}
+  m_Father: {fileID: 3390467403729316765}
+  m_RootOrder: 1
+  m_LocalEulerAnglesHint: {x: 90, y: 0, z: 0}
+--- !u!33 &1312883106029576503
+MeshFilter:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 3319392661904935552}
+  m_Mesh: {fileID: 0}
+--- !u!23 &5284903402926663935
+MeshRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 3319392661904935552}
+  m_Enabled: 1
+  m_CastShadows: 1
+  m_ReceiveShadows: 1
+  m_DynamicOccludee: 1
+  m_StaticShadowCaster: 0
+  m_MotionVectors: 1
+  m_LightProbeUsage: 1
+  m_ReflectionProbeUsage: 1
+  m_RayTracingMode: 2
+  m_RayTraceProcedural: 0
+  m_RenderingLayerMask: 1
+  m_RendererPriority: 0
+  m_Materials:
+  - {fileID: 2100000, guid: 8ae9adf4dc782964387385c1e8c0eb72, type: 2}
+  m_StaticBatchInfo:
+    firstSubMesh: 0
+    subMeshCount: 0
+  m_StaticBatchRoot: {fileID: 0}
+  m_ProbeAnchor: {fileID: 0}
+  m_LightProbeVolumeOverride: {fileID: 0}
+  m_ScaleInLightmap: 1
+  m_ReceiveGI: 1
+  m_PreserveUVs: 0
+  m_IgnoreNormalsForChartDetection: 0
+  m_ImportantGI: 0
+  m_StitchLightmapSeams: 0
+  m_SelectedEditorRenderState: 3
+  m_MinimumChartSize: 4
+  m_AutoUVMaxDistance: 0.5
+  m_AutoUVMaxAngle: 89
+  m_LightmapParameters: {fileID: 0}
+  m_SortingLayerID: 0
+  m_SortingLayer: 0
+  m_SortingOrder: 0
+  m_AdditionalVertexStreams: {fileID: 0}
+--- !u!64 &2574848627300415222
+MeshCollider:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 3319392661904935552}
+  m_Material: {fileID: 0}
+  m_IsTrigger: 0
+  m_Enabled: 1
+  serializedVersion: 4
+  m_Convex: 1
+  m_CookingOptions: 30
+  m_Mesh: {fileID: 0}
+--- !u!114 &7280041197286401157
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 3319392661904935552}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 626c435b76e0d334f959ede8b54b07ac, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  _URI: 
+  FactText: []
+  StringLabelFormats: []
+  Default: {fileID: 2100000, guid: 8ae9adf4dc782964387385c1e8c0eb72, type: 2}
+  Selected: {fileID: 2100000, guid: 34a95baef388bb8458c97a626b732f9f, type: 2}
+  Hint: {fileID: 2100000, guid: 8621b710d7d1d5041bc6bfd0cc37cdff, type: 2}
+  Solution: {fileID: 2100000, guid: 2a003f0807acc1142965bb21bdc824f6, type: 2}
+  renderer:
+  - {fileID: 5284903402926663935}
+  - {fileID: 1078883255209641429}
+--- !u!1 &4682201382595328041
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 6787775389045427190}
+  - component: {fileID: 6626359674163989219}
+  - component: {fileID: 4818731436791451552}
+  m_Layer: 15
+  m_Name: CircleHighlight
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!4 &6787775389045427190
+Transform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 4682201382595328041}
+  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+  m_LocalPosition: {x: 0, y: 0, z: 0}
+  m_LocalScale: {x: 0.96, y: 1, z: 0.96}
+  m_ConstrainProportionsScale: 0
+  m_Children: []
+  m_Father: {fileID: 7541265271928914416}
+  m_RootOrder: 0
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!33 &6626359674163989219
+MeshFilter:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 4682201382595328041}
+  m_Mesh: {fileID: 0}
+--- !u!23 &4818731436791451552
+MeshRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 4682201382595328041}
+  m_Enabled: 1
+  m_CastShadows: 1
+  m_ReceiveShadows: 1
+  m_DynamicOccludee: 1
+  m_StaticShadowCaster: 0
+  m_MotionVectors: 1
+  m_LightProbeUsage: 1
+  m_ReflectionProbeUsage: 1
+  m_RayTracingMode: 2
+  m_RayTraceProcedural: 0
+  m_RenderingLayerMask: 1
+  m_RendererPriority: 0
+  m_Materials:
+  - {fileID: 2100000, guid: 8ae9adf4dc782964387385c1e8c0eb72, type: 2}
+  m_StaticBatchInfo:
+    firstSubMesh: 0
+    subMeshCount: 0
+  m_StaticBatchRoot: {fileID: 0}
+  m_ProbeAnchor: {fileID: 0}
+  m_LightProbeVolumeOverride: {fileID: 0}
+  m_ScaleInLightmap: 1
+  m_ReceiveGI: 1
+  m_PreserveUVs: 0
+  m_IgnoreNormalsForChartDetection: 0
+  m_ImportantGI: 0
+  m_StitchLightmapSeams: 1
+  m_SelectedEditorRenderState: 3
+  m_MinimumChartSize: 4
+  m_AutoUVMaxDistance: 0.5
+  m_AutoUVMaxAngle: 89
+  m_LightmapParameters: {fileID: 0}
+  m_SortingLayerID: 0
+  m_SortingLayer: 0
+  m_SortingOrder: 0
+  m_AdditionalVertexStreams: {fileID: 0}
+--- !u!1 &5866155945383417828
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 8554957501859850914}
+  - component: {fileID: 3164742056485930267}
+  - component: {fileID: 1460740696286669547}
+  m_Layer: 15
+  m_Name: CircleHighlight
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!4 &8554957501859850914
+Transform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 5866155945383417828}
+  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+  m_LocalPosition: {x: 0, y: 0, z: 0}
+  m_LocalScale: {x: 0.96, y: 1, z: 0.96}
+  m_ConstrainProportionsScale: 0
+  m_Children: []
+  m_Father: {fileID: 142224692930156368}
+  m_RootOrder: 0
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!33 &3164742056485930267
+MeshFilter:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 5866155945383417828}
+  m_Mesh: {fileID: 0}
+--- !u!23 &1460740696286669547
+MeshRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 5866155945383417828}
+  m_Enabled: 1
+  m_CastShadows: 1
+  m_ReceiveShadows: 1
+  m_DynamicOccludee: 1
+  m_StaticShadowCaster: 0
+  m_MotionVectors: 1
+  m_LightProbeUsage: 1
+  m_ReflectionProbeUsage: 1
+  m_RayTracingMode: 2
+  m_RayTraceProcedural: 0
+  m_RenderingLayerMask: 1
+  m_RendererPriority: 0
+  m_Materials:
+  - {fileID: 2100000, guid: 8ae9adf4dc782964387385c1e8c0eb72, type: 2}
+  m_StaticBatchInfo:
+    firstSubMesh: 0
+    subMeshCount: 0
+  m_StaticBatchRoot: {fileID: 0}
+  m_ProbeAnchor: {fileID: 0}
+  m_LightProbeVolumeOverride: {fileID: 0}
+  m_ScaleInLightmap: 1
+  m_ReceiveGI: 1
+  m_PreserveUVs: 0
+  m_IgnoreNormalsForChartDetection: 0
+  m_ImportantGI: 0
+  m_StitchLightmapSeams: 1
+  m_SelectedEditorRenderState: 3
+  m_MinimumChartSize: 4
+  m_AutoUVMaxDistance: 0.5
+  m_AutoUVMaxAngle: 89
+  m_LightmapParameters: {fileID: 0}
+  m_SortingLayerID: 0
+  m_SortingLayer: 0
+  m_SortingOrder: 0
+  m_AdditionalVertexStreams: {fileID: 0}
+--- !u!1 &6262947649539239553
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 142224692930156368}
+  - component: {fileID: 7167210412035754299}
+  - component: {fileID: 1078883255209641429}
+  - component: {fileID: 8526453253978894086}
+  - component: {fileID: -7239156242830623982}
+  m_Layer: 15
+  m_Name: Mesh Up
+  m_TagString: SnapZone
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!4 &142224692930156368
+Transform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 6262947649539239553}
+  m_LocalRotation: {x: 0.7071068, y: 0, z: 0, w: 0.7071068}
+  m_LocalPosition: {x: 0, y: 0.01, z: 0}
+  m_LocalScale: {x: 1, y: 0.01, z: 1}
+  m_ConstrainProportionsScale: 0
+  m_Children:
+  - {fileID: 8554957501859850914}
+  m_Father: {fileID: 3390467403729316765}
+  m_RootOrder: 0
+  m_LocalEulerAnglesHint: {x: 90, y: 0, z: 0}
+--- !u!33 &7167210412035754299
+MeshFilter:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 6262947649539239553}
+  m_Mesh: {fileID: 0}
+--- !u!23 &1078883255209641429
+MeshRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 6262947649539239553}
+  m_Enabled: 1
+  m_CastShadows: 1
+  m_ReceiveShadows: 1
+  m_DynamicOccludee: 1
+  m_StaticShadowCaster: 0
+  m_MotionVectors: 1
+  m_LightProbeUsage: 1
+  m_ReflectionProbeUsage: 1
+  m_RayTracingMode: 2
+  m_RayTraceProcedural: 0
+  m_RenderingLayerMask: 1
+  m_RendererPriority: 0
+  m_Materials:
+  - {fileID: 2100000, guid: 8ae9adf4dc782964387385c1e8c0eb72, type: 2}
+  m_StaticBatchInfo:
+    firstSubMesh: 0
+    subMeshCount: 0
+  m_StaticBatchRoot: {fileID: 0}
+  m_ProbeAnchor: {fileID: 0}
+  m_LightProbeVolumeOverride: {fileID: 0}
+  m_ScaleInLightmap: 1
+  m_ReceiveGI: 1
+  m_PreserveUVs: 0
+  m_IgnoreNormalsForChartDetection: 0
+  m_ImportantGI: 0
+  m_StitchLightmapSeams: 0
+  m_SelectedEditorRenderState: 3
+  m_MinimumChartSize: 4
+  m_AutoUVMaxDistance: 0.5
+  m_AutoUVMaxAngle: 89
+  m_LightmapParameters: {fileID: 0}
+  m_SortingLayerID: 0
+  m_SortingLayer: 0
+  m_SortingOrder: 0
+  m_AdditionalVertexStreams: {fileID: 0}
+--- !u!64 &8526453253978894086
+MeshCollider:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 6262947649539239553}
+  m_Material: {fileID: 0}
+  m_IsTrigger: 0
+  m_Enabled: 1
+  serializedVersion: 4
+  m_Convex: 1
+  m_CookingOptions: 30
+  m_Mesh: {fileID: 0}
+--- !u!114 &-7239156242830623982
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 6262947649539239553}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 626c435b76e0d334f959ede8b54b07ac, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  _URI: 
+  FactText: []
+  StringLabelFormats: []
+  Default: {fileID: 2100000, guid: 8ae9adf4dc782964387385c1e8c0eb72, type: 2}
+  Selected: {fileID: 2100000, guid: 34a95baef388bb8458c97a626b732f9f, type: 2}
+  Hint: {fileID: 2100000, guid: 8621b710d7d1d5041bc6bfd0cc37cdff, type: 2}
+  Solution: {fileID: 2100000, guid: 2a003f0807acc1142965bb21bdc824f6, type: 2}
+  renderer:
+  - {fileID: 1078883255209641429}
+  - {fileID: 5284903402926663935}
+--- !u!1 &6839596689016440457
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 3390467403729316765}
+  - component: {fileID: 1812690906255965161}
+  - component: {fileID: 6950663371922587874}
+  m_Layer: 15
+  m_Name: SimpleCircle
+  m_TagString: Selectable
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!4 &3390467403729316765
+Transform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 6839596689016440457}
+  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+  m_LocalPosition: {x: 0, y: 1, z: 0}
+  m_LocalScale: {x: 1, y: 1, z: 1}
+  m_ConstrainProportionsScale: 0
+  m_Children:
+  - {fileID: 142224692930156368}
+  - {fileID: 7541265271928914416}
+  m_Father: {fileID: 0}
+  m_RootOrder: 0
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!114 &1812690906255965161
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 6839596689016440457}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 405087c38b8537e43bcc99727c5325ec, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  Meshs:
+  - {fileID: 7167210412035754299}
+  - {fileID: 3164742056485930267}
+  - {fileID: 1312883106029576503}
+  - {fileID: 6626359674163989219}
+  NormalOffset: []
+  AlternateNormals: 0
+  radius: 1
+  sideCount: 500
+--- !u!114 &6950663371922587874
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 6839596689016440457}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 626c435b76e0d334f959ede8b54b07ac, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  _URI: 
+  FactText: []
+  StringLabelFormats: []
+  Default: {fileID: 2100000, guid: 8ae9adf4dc782964387385c1e8c0eb72, type: 2}
+  Selected: {fileID: 2100000, guid: 34a95baef388bb8458c97a626b732f9f, type: 2}
+  Hint: {fileID: 2100000, guid: 8621b710d7d1d5041bc6bfd0cc37cdff, type: 2}
+  Solution: {fileID: 2100000, guid: 2a003f0807acc1142965bb21bdc824f6, type: 2}
+  renderer:
+  - {fileID: 1078883255209641429}
diff --git a/Assets/Resources/Prefabs/Facts/SimpleCircle.prefab.meta b/Assets/Resources/Prefabs/Facts/SimpleCircle.prefab.meta
new file mode 100644
index 0000000000000000000000000000000000000000..633581020cb35c0f1bc3c4a6275876fd5f0b8592
--- /dev/null
+++ b/Assets/Resources/Prefabs/Facts/SimpleCircle.prefab.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: ba4e0d31779023d4d8a5767fd6dccf5c
+PrefabImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Assets/Scenes/Worlds/RiverWorld.unity b/Assets/Scenes/Worlds/RiverWorld.unity
index 410964600e43c4309a9fa9ad766d610a45b65936..38c1df443cfabc19ec2cf171bcc378f8d91a6e87 100644
--- a/Assets/Scenes/Worlds/RiverWorld.unity
+++ b/Assets/Scenes/Worlds/RiverWorld.unity
@@ -38,7 +38,7 @@ RenderSettings:
   m_ReflectionIntensity: 1
   m_CustomReflection: {fileID: 0}
   m_Sun: {fileID: 0}
-  m_IndirectSpecularColor: {r: 0.44100717, g: 0.4898312, b: 0.5698877, a: 1}
+  m_IndirectSpecularColor: {r: 0.44084534, g: 0.48955458, b: 0.56959116, a: 1}
   m_UseRadianceAmbientProbe: 0
 --- !u!157 &3
 LightmapSettings:
@@ -3967,7 +3967,7 @@ Mesh:
   m_CorrespondingSourceObject: {fileID: 0}
   m_PrefabInstance: {fileID: 0}
   m_PrefabAsset: {fileID: 0}
-  m_Name: pb_Mesh103956
+  m_Name: pb_Mesh97366
   serializedVersion: 10
   m_SubMeshes:
   - serializedVersion: 2
@@ -60742,6 +60742,12 @@ PrefabInstance:
       value: 
       objectReference: {fileID: 537518992981541273, guid: 998991ab9f28e764691da393b005cab3,
         type: 3}
+    - target: {fileID: 2872381745209199267, guid: b07552db700124a4680401e6fb94c186,
+        type: 3}
+      propertyPath: SimpleCircle
+      value: 
+      objectReference: {fileID: 6839596689016440457, guid: ba4e0d31779023d4d8a5767fd6dccf5c,
+        type: 3}
     - target: {fileID: 2885104145836066559, guid: b07552db700124a4680401e6fb94c186,
         type: 3}
       propertyPath: m_AnchorMax.y
diff --git a/Assets/Scripts/InteractionEngine/FactHandling/FactSpawner.cs b/Assets/Scripts/InteractionEngine/FactHandling/FactSpawner.cs
index 6d0e8ab766a6b83f99d64fc169f2cc6fe18fc435..8667bda1a4550121a3d990f4079a725f740b1fee 100644
--- a/Assets/Scripts/InteractionEngine/FactHandling/FactSpawner.cs
+++ b/Assets/Scripts/InteractionEngine/FactHandling/FactSpawner.cs
@@ -21,6 +21,7 @@ public GameObject
         Cone,
         Rectangle,
         Circle,
+        SimpleCircle,
         Triangle;
 
     private void OnEnable()
@@ -64,6 +65,8 @@ public void SpawnFactRepresentation(Fact fact)
                 SpawnTruncatedCone(TruncatedConeVolumeFact); break;
             case RectangleFact rectangleFact:
                 SpawnRectangle(rectangleFact); break;
+            case SimpleCircleFact simpleCircleFact:
+                SpawnSimpleCircle(simpleCircleFact); break;
             case TriangleFact2 triangleFact:
                 SpawnTriangle(triangleFact); break;
             default: break;
@@ -80,6 +83,13 @@ public void SpawnRectangle(RectangleFact fact){
 
     }
 
+    public void SpawnSimpleCircle(SimpleCircleFact fact){
+        GameObject simpleCircle = GameObject.Instantiate(SimpleCircle);
+
+        simpleCircle.transform.SetPositionAndRotation(fact.Position, fact.Rotation);
+        simpleCircle.transform.localScale = Vector3.Scale(simpleCircle.transform.localScale, fact.LocalScale);
+    }
+
     public void SpawnTriangle(TriangleFact2 fact)
     {
 
diff --git a/Assets/Scripts/InteractionEngine/FactHandling/Facts/Fact.cs b/Assets/Scripts/InteractionEngine/FactHandling/Facts/Fact.cs
index bfb0885d708b2ed021035b3a15abb78ab3ef5b4f..43dd9f673f9239f12c0113b9a30fb2d0491b17b4 100644
--- a/Assets/Scripts/InteractionEngine/FactHandling/Facts/Fact.cs
+++ b/Assets/Scripts/InteractionEngine/FactHandling/Facts/Fact.cs
@@ -79,6 +79,10 @@ public static class ParsingDictionary
             MMTConstants.TriangleType,
             TriangleFact2.parseFact
         },
+        {
+            MMTConstants.SimpleCircleType,
+            SimpleCircleFact.parseFact
+        },
     };
 
     // TODO: get rid of this
@@ -121,6 +125,7 @@ public static class ParsingDictionary
 [JsonSubtypes.KnownSubType(typeof(RealLitFact), nameof(RealLitFact))]
 [JsonSubtypes.KnownSubType(typeof(RectangleFact), nameof(RectangleFact))]
 [JsonSubtypes.KnownSubType(typeof(TriangleFact2), nameof(TriangleFact2))]
+[JsonSubtypes.KnownSubType(typeof(SimpleCircleFact), nameof(SimpleCircleFact))]
 public abstract class Fact
 {
     [JsonIgnore]
diff --git a/Assets/Scripts/InteractionEngine/FactHandling/Facts/SimpleCircleFact.cs b/Assets/Scripts/InteractionEngine/FactHandling/Facts/SimpleCircleFact.cs
new file mode 100644
index 0000000000000000000000000000000000000000..2c6b1528ff08e71ed72c1048392dc17b1516dd60
--- /dev/null
+++ b/Assets/Scripts/InteractionEngine/FactHandling/Facts/SimpleCircleFact.cs
@@ -0,0 +1,164 @@
+using Newtonsoft.Json;
+using REST_JSON_API;
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using System.Linq;
+using UnityEngine;
+
+/// <summary>
+/// Point in 3D Space
+/// </summary>
+public class SimpleCircleFact : FactWrappedCRTP<SimpleCircleFact>
+{
+
+
+    //used points
+    public string PidA, PidB, PidM;
+
+    public Vector3 M, A, B;
+
+    public float Area = 0.0F;
+    public float Radius = 0.0F;
+
+
+
+    public PointFact GetA {get =>  (PointFact)FactRecorder.AllFacts[PidA];}
+    public PointFact GetB {get =>  (PointFact)FactRecorder.AllFacts[PidB];}
+    public PointFact GetM {get =>  (PointFact)FactRecorder.AllFacts[PidM];}
+    protected void calculate_vectors(){
+
+        A = ((PointFact)FactRecorder.AllFacts[PidA]).Point + Vector3.zero;
+        B = ((PointFact)FactRecorder.AllFacts[PidB]).Point + Vector3.zero;
+        M = ((PointFact)FactRecorder.AllFacts[PidM]).Point + Vector3.zero;
+
+        Area = (Vector3.Distance(M, A) * Mathf.PI);
+        Radius = (Vector3.Distance(M, A));
+        Vector3 scale = new Vector3(Radius, Radius, 1.0F);
+        
+        LocalScale = scale;
+
+        Position =  M;
+
+        Rotation = Quaternion.LookRotation(Vector3.Cross((M-A), (A-B)), Vector3.up);
+        //Rotation = Quaternion.LookRotation(forward, new Vector3(1.0F, 0.0F, 0.0F));
+        
+    }
+
+    public SimpleCircleFact() : base(){
+        this.PidA = null;
+        this.PidB = null;
+        this.PidM = null;
+    }
+    [JsonConstructor]
+    public SimpleCircleFact( string PidM, string PidA, string PidB) : base()
+    {
+
+        this.PidA = PidA;
+        this.PidB = PidB;
+        this.PidM = PidM;
+
+        calculate_vectors();
+
+    }
+
+    /// <summary>
+    /// Bypasses initialization of new MMT %Fact by using existend URI, _which is not checked for existence_.
+    /// <see cref="Normal"/> set to <c>Vector3.up</c>
+    /// </summary>
+    /// <param name="Point">sets <see cref="Point"/></param>
+    /// <param name="ServerDefinition">MMT URI as OMS</param>
+    public SimpleCircleFact(string PidM, string PidA, string PidB, SOMDoc ServerDefinition) : base()
+    {
+  
+
+        this.PidA = PidA;
+        this.PidB = PidB;
+        this.PidM = PidM;
+        
+        this.ServerDefinition = ServerDefinition;
+
+        calculate_vectors();
+    
+    }
+
+    /// \copydoc Fact.parseFact(ScrollFact)
+    public new static IEnumerator parseFact(List<Fact> ret, MMTFact fact)
+    {
+        if (((MMTGeneralFact)fact).defines is not OMA df)
+            yield break;
+
+        OMS pointA, pointB, pointM;
+
+        pointM = (OMS)df.arguments[0];
+        pointA = (OMS)df.arguments[1];
+        pointB = (OMS)df.arguments[2];
+
+        string PidA = pointA.uri;
+        string PidB = pointB.uri;
+        string PidM = pointM.uri;
+
+        
+
+        ret.Add(new SimpleCircleFact(PidM, PidA, PidB, fact.@ref));
+
+        //ParsingDictionary.parseTermsToId.TryAdd(defines.ToString(), fact.@ref.uri);
+        //ret.Add(new PointFact(SOMDoc.MakeVector3(defines), fact.@ref));
+    }
+
+
+    /// \copydoc Fact.hasDependentFacts
+    public override bool HasDependentFacts => true;
+
+    /// \copydoc Fact.getDependentFactIds
+    protected override string[] GetDependentFactIds()
+        => new string[] { PidM, PidA, PidB};
+
+    /// \copydoc Fact.GetHashCode
+    /* public override int GetHashCode()
+        => this.Point.GetHashCode();
+    */
+    protected override void RecalculateTransform()
+    {
+        calculate_vectors();
+    }
+    /// \copydoc Fact.Equivalent(Fact, Fact)
+    protected override bool EquivalentWrapped(SimpleCircleFact f1, SimpleCircleFact f2){
+        
+        return (
+
+                    Math3d.IsApproximatelyEqual(f1.A, f2.A)
+                && Math3d.IsApproximatelyEqual(f1.B, f2.B)
+                && Math3d.IsApproximatelyEqual(f1.M, f2.M)
+
+        );
+
+    }
+
+    public bool isEqual(SimpleCircleFact f2){
+        return EquivalentWrapped(this, f2);
+    }
+
+    protected override Fact _ReInitializeMe(Dictionary<string, string> old_to_new){
+        
+        return new SimpleCircleFact(this.PidM, this.PidA, this.PidB);
+
+    }
+
+    public override MMTFact MakeMMTDeclaration()
+    {
+        SOMDoc tp = new OMS(MMTConstants.SimpleCircleType);
+
+        return new MMTGeneralFact(_LastLabel, tp, Defines());
+    }
+
+    public override SOMDoc Defines()
+        => new OMA(
+                new OMS(MMTConstants.SimpleCircleCons),
+                new[] {
+                        new OMS(PidM),
+                        new OMS(PidA),
+                        new OMS(PidB),
+                }
+            );
+}
\ No newline at end of file
diff --git a/Assets/Scripts/InteractionEngine/FactHandling/Facts/SimpleCircleFact.cs.meta b/Assets/Scripts/InteractionEngine/FactHandling/Facts/SimpleCircleFact.cs.meta
new file mode 100644
index 0000000000000000000000000000000000000000..b22e8c5dcc064181ba80986bfc62f6ad3789b114
--- /dev/null
+++ b/Assets/Scripts/InteractionEngine/FactHandling/Facts/SimpleCircleFact.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: ef5f556a10083d7409aae56a15f372a6
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Assets/Scripts/MMTServer/CommunicationProtocoll/MMTConstants.cs b/Assets/Scripts/MMTServer/CommunicationProtocoll/MMTConstants.cs
index 60cd4ebf57323a46c0369624b10f50daab8d9f5b..a56b0694d09527bb14d93940ceebafa3039ac72e 100644
--- a/Assets/Scripts/MMTServer/CommunicationProtocoll/MMTConstants.cs
+++ b/Assets/Scripts/MMTServer/CommunicationProtocoll/MMTConstants.cs
@@ -52,6 +52,10 @@ public static class MMTConstants
         public static readonly string CuboidType = "http://mathhub.info/FrameIT/frameworld?CuboidType?cuboidType";
         public static readonly string CuboidScroll = "http://mathhub.info/FrameIT/frameworld?CuboidScroll";
 
+        public static readonly string SimpleCircleCons = "http://mathhub.info/FrameIT/frameworld?CircleType?circleCons";
+        public static readonly string SimpleCircleType = "http://mathhub.info/FrameIT/frameworld?CircleType?circleType";
+        public static readonly string SimpleCircleScroll = "http://mathhub.info/FrameIT/frameworld?SimpleCircleScroll";
+
         public static readonly string CircleType3d = "http://mathhub.info/FrameIT/frameworld?FrameITCircle?circleType3D";
         public static readonly string MkCircle3d = "http://mathhub.info/FrameIT/frameworld?FrameITCircle?circle3D";
         public static readonly string TriangleMiddlePoint = "http://mathhub.info/FrameIT/frameworld?FrameITTriangles?triangleMidPointWrapper";
@@ -161,6 +165,10 @@ public static class MMTConstants
                 RectangleType,
                 typeof(RectangleFact)
             },
+            {
+                SimpleCircleType,
+                typeof(SimpleCircleFact)
+            },
             {
                 TriangleType,
                 typeof(TriangleFact2)