contract FloraFicToken is StandardToken, Ownable {

    string public name = 'Flora Fic';
    string public symbol = 'FIC';
    uint8 public decimals = 6;

    uint256 public constant INITIAL_SUPPLY = 5400000000000000;

    event Vesting(address _indexed);
    event Timelock(address _indexed);

    /**
     * @dev Constructor that gives msg.sender all of existing tokens.
     */
    function FloraFicToken() public {
        totalSupply_ = INITIAL_SUPPLY;
        balances[msg.sender] = INITIAL_SUPPLY;
        emit Transfer(0x0, msg.sender, INITIAL_SUPPLY);
    }

    function transferVesting(address _beneficiary, uint256 _start, uint256 _cliff, uint256 _duration) public
    onlyOwner returns (TokenVesting) {
        TokenVesting tokenVesting = new TokenVesting(_beneficiary, _start, _cliff, _duration, true);
        tokenVesting.transferOwnership(owner);
        emit Vesting(tokenVesting);
        return tokenVesting;
    }

    function transferTimelocked(address _to, uint256 _releaseTime) public
    onlyOwner returns (TokenTimelock) {
        TokenTimelock timelock = new TokenTimelock(this, _to, _releaseTime);
        emit Timelock(timelock);
        return timelock;
    }

}
function FloraFicToken() public {
    totalSupply_ = INITIAL_SUPPLY;
    balances[msg.sender] = INITIAL_SUPPLY;
    emit Transfer(0x0, msg.sender, INITIAL_SUPPLY);
}

/**
 * @dev Constructor that gives msg.sender all of existing tokens.
 */