::   ::    ::   ::   ::   :: 
::    ::   ::  ::      ::