various solutions