contract PassProjectCreator {
    
    event NewPassProject(PassDao indexed Dao, PassProject indexed Project, string Name, string Description, bytes32 HashOfTheDocument);

    /// @notice Function to create a new Pass project
    /// @param _passDao The Pass Dao smart contract
    /// @param _name The project name
    /// @param _description The project description (not mandatory, can be updated after by the creator)
    /// @param _hashOfTheDocument The Hash Of the project Document (not mandatory, can be updated after by the creator)
    function createProject(
        PassDao _passDao,
        string _name, 
        string _description, 
        bytes32 _hashOfTheDocument
        ) returns (PassProject) {

        PassProject _passProject = new PassProject(_passDao, _name, _description, _hashOfTheDocument);

        NewPassProject(_passDao, _passProject, _name, _description, _hashOfTheDocument);

        return _passProject;
    }
}
function createProject(
    PassDao _passDao,
    string _name, 
    string _description, 
    bytes32 _hashOfTheDocument
    ) returns (PassProject) {

    PassProject _passProject = new PassProject(_passDao, _name, _description, _hashOfTheDocument);

    NewPassProject(_passDao, _passProject, _name, _description, _hashOfTheDocument);

    return _passProject;
}

/// @notice Function to create a new Pass project
/// @param _passDao The Pass Dao smart contract
/// @param _name The project name
/// @param _description The project description (not mandatory, can be updated after by the creator)
/// @param _hashOfTheDocument The Hash Of the project Document (not mandatory, can be updated after by the creator)